메서드 오버라이딩은 객체 지향 프로그래밍에서 하위 클래스가 상위 클래스의 메서드를 재정의하여 사용하는 개념입니다. 이를 통해 상속 관계에서 하위 클래스는 자신에 맞게 부모 클래스의 메서드를 재구현할 수 있습니다. 메서드 오버라이딩은 다형성의 핵심 원리입니다.
메서드 오버라이딩의 조건
- 메서드 이름이 동일해야 합니다.
- 매개변수의 개수, 타입, 순서가 모두 동일해야 합니다.
- 리턴 타입이 같거나 하위 타입이어야 합니다.
- 접근 제어자는 부모 클래스의 메서드보다 범위가 더 축소될 수 없습니다.
- 부모 클래스의 메서드가 final이 아니어야 합니다.
- 부모 클래스의 메서드보다 많은 수의 예외를 처리할 수 없습니다.
메서드 오버라이딩 예제
class Animal {
void makeSound() {
System.out.println("동물 소리");
}
}
class Dog extends Animal {
// 명시적 표현
@Override
void makeSound() {
System.out.println("멍멍");
}
}
public class Main {
public static void main(String[] args) {
Dog dog = new Dog();
dog.makeSound(); // 멍멍
}
}
'JAVA > 객체 지향 프로그래밍' 카테고리의 다른 글
[JAVA] 업캐스팅 & 다운캐스팅 (0) | 2023.08.19 |
---|---|
[JAVA] 다형성이란 (0) | 2023.08.19 |
[JAVA] 상속 super 키워드와 super() 메서드 (0) | 2023.08.18 |
[JAVA] 상속의 정의와 개념 (0) | 2023.08.16 |
[JAVA] 객체의 생성과 사용 (0) | 2023.08.16 |