[Java기초이론] 오버라이딩(Overriding)
오버라이딩이란?
조상 클래스로부터 ㅁ상속받은 메서드의 내용을 변경하는 것을 오버라이딩
이라고 한다.
오버라이딩의 조건
자손 클래스에서 오버라이딩하는 메서드는 조상 클래스의 메서드와
- 이름이 같아야한다.
- 매개변수가 같아야 한다.
- 반환타입이 같아야 한다.
한마디로 요약하면 선언부가 서로 일치해야 한다는 것이다. 다만 접근 제어자(access modifier)
와 예외(exception)
는 제한된 조건 하에서만 다르게 변경할 수 있다.
1) 접근 제어자는 조상 클래스의 메서드보다 좁은 범위로 변경 할 수 없다.
조상클래스에 정의된 메서드의 접근 제어자가 protected
라면, 이를 오버라이딩하는 자손 클래스의 메서드는 접근 제어자가 protected
나 public
이어야한다.
public > protected > (default) > private
2) 조상 클래스의 메서드보다 많은 수의 예외를 선언할 수 없다.
3) 인스턴스메서드를 static메서드로 또는 그 반대로 변경할 수 없다.