[JAVA] 메서드 오버라이딩 조건

메서드 오버라이딩은 객체 지향 프로그래밍에서 하위 클래스가 상위 클래스의 메서드를 재정의하여 사용하는 개념입니다. 이를 통해 상속 관계에서 하위 클래스는 자신에 맞게 부모 클래스의 메서드를 재구현할 수 있습니다. 메서드 오버라이딩은 다형성의 핵심 원리입니다.

 

메서드 오버라이딩의 조건

  1. 메서드 이름이 동일해야 합니다.
  2. 매개변수의 개수, 타입, 순서가 모두 동일해야 합니다.
  3. 리턴 타입이 같거나 하위 타입이어야 합니다.
  4. 접근 제어자는 부모 클래스의 메서드보다 범위가 더 축소될 수 없습니다.
  5. 부모 클래스의 메서드가 final이 아니어야 합니다.
  6. 부모 클래스의 메서드보다 많은 수의 예외를 처리할 수 없습니다.

메서드 오버라이딩 예제

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(); // 멍멍
    }
}