[JAVA] 오버라이딩 오버로드

김훈·2022년 1월 24일
0

[JAVA]

목록 보기
4/5

1. 용어 정의

  1. 오버로딩(Overloading)
    : 같은 이름의 메소드를 여러개 가지면서 매개변수의 유형과 개수를 다르게 하는 기술

  2. 오버라이딩(Overriding)
    : 상위 클래스가 가지고 있는 메소드를 하위 클래스가 재정의해서 사용


2. 예제

1. 오버로딩(Overloading)

class OverloadingTest{

    // cat 인 메소드가 여러개지만 매개변수가 달라서, 매개변수 포함 여부에 따라 호출 가능
    //이름이 cat인 메서드
    void cat(){
        System.out.println("매개변수 없음");
    }
    
    //매개변수 int형이 2개인 cat 메서드
    void cat(int a, int b){
        System.out.println("매개변수 :"+a+", "+b);
    }
    
    //매개변수 String형이 한 개인 cat 메서드
    void cat(String c){
        System.out.println("매개변수 : "+ c);
    }
    
}
 
public class OverTest {
 
    public static void main(String[] args) {
        
        //OverloadingTest 객체 생성 
        OverloadingTest ot = new OverloadingTest();
        
        //매개변수가 없는 cat() 호출
        ot.cat();
        
        //매개변수가 int형 두개인 cat() 호출
        ot.cat(20, 80);
        
        //매개변수가 String 한개인 cat() 호출
        ot.cat("오버로딩 예제입니다.");
        
    }
 
}

2. 오버라이딩(Overriding)

class Woman { // 부모클래스
	public String name;
	public int age;

	// info 메서드
	public void info() {

		System.out.println("여자의 이름은 " + name + ", 나이는 " + age + "살입니다.");
	}

}

class Job extends Woman { // Woman클래스(부모클래스)를 상속받음 :

	String job;

	public void info() {// 부모(Woman)클래스에 있는 info()메서드를 재정의
		super.info();
		System.out.println("여자의 직업은 " + job + "입니다.");
	}
}

public class overriding {

	public static void main(String[] args) {

		// Job 객체 생성
		Job job = new Job();
		Woman woman = new Woman();
		// 변수 설정
		job.name = "유리";
		job.age = 30;
		job.job = "프로그래머";

		// 호출
		// 잡을 호출하면 잡의 확장인 우먼도 호출
		job.info(); // 이놈 클래스의 에서 super.info(); 를 통해 이름과 나이를 넘겨주기때문에 얘만 출력
		woman.info();
	}

}


출처: https://private.tistory.com/25 [공부해서 남 주자]

profile
작고 소중한 개발 노트

0개의 댓글