오버로딩과 오버라이딩의 차이점

박우현 (Joshua)·2023년 7월 31일
0

오버로딩(OverLoading)

메서드의 이름은 같고 매개변수의 갯수나 타입이 다른 함수를 정의하는 것을 의미한다. 리턴값만 다르게 작성하는 것은 안된다.

public static int add(int a, int b){
	return a+b;
}
public static float add (float a, float b){
	return a+b;
}

오버라이딩(OverRiding)

상위 클래스의 메서드를 하위 클래스가 재정의 하는 것이다. 메서드의 이름은 물론 파라메터의 갯수나 타입도 동일해야 하며, 주로 상위 클래스의 메서드를 상속받은 하위 클래스에서 변경하기 위해 사용된다.

public class Main {
    public static void main(String[] args) {
        Person person1 = new Police();
        Person person2 = new Doctor();
        person1.define(); // 출력: "I am Police"
        person2.define(); // 출력: "I am Doctor"
    }
}
class Person {
    void define() {
        System.out.println("I am Person");
    }
}
class Police extends Person {
    @Override
    void define() {
        System.out.println("I am Police");
    }
}
class Doctor extends Person {
    @Override
    void define() {
        System.out.println("I am Doctor");
    }
}

OverLoading 과 OverRiding의 차이점

오버로딩(Overloading)은 기존에 없던 새로운 메서드를 정의하는 것이고,
오버라이딩(Overriding)은 상속 받은 메서드의 내용만 변경 하는 것이다.

구분오버로딩오버라이딩
메소드 이름동일동일
매개변수, 타입다름동일
리턴타입상관 없음동일
profile
매일 매일 성장하자

0개의 댓글