메서드 오버라이딩과 메서드 오버로딩의 차이
메서드 오버로딩
같은 이름의 메서드를 여러 개 정의하는 것입니다.
이때 메서드의 매개변수의 개수나 타입이 다르면,
컴파일러는 해당 매개변수에 맞는 메서드를 선택합니다.
- 메서드 이름이 같아야 함
- 매개변수의 개수, 타입, 순서가 달라야 함
- 반환 타입과 접근 제어자는 메서드 오버로딩과 관련이 없음
메서드 오버라이딩
상위 클래스의 메서드를 하위 클래스에서 재정의하는 것입니다.
상위 클래스에서 정의된 메서드와 동일한 이름, 매개변수 및 반환형을 가지는 메서드를
하위 클래스에서 구현하는 것입니다.
- 메서드 이름, 매개변수, 반환 타입이 모두 같아야 함
- 접근 제어자는 상위 클래스와 같거나 더 넓은 범위로 지정할 수 있음
- 예외는 상위 클래스의 예외와 같거나 하위 예외만 발생시킬 수 있음
메서드 오버로딩은 같은 이름의 메서드를 여러 개 정의하고,
메서드 오버라이딩은 상속 관계에 있는 클래스에서 메서드를 재정의하는 것입니다.
This post is licensed under CC BY 4.0 by the author.