최종 으로 선언된 모든 메소드 슈퍼클래스에서 재정의할 수 없음 하위 클래스에 의해. 최종 방법을 재정의하려는 경우 상위 클래스의 경우 Java에서 오류가 발생합니다.
메서드 재정의 구현 규칙
- 메소드 선언은 재정의할 메서드의 선언과 동일해야 합니다.
- 클래스(하위 클래스)는 재정의를 시도하기 전에 다른 클래스(수퍼 클래스)를 확장해야 합니다.
- 하위 클래스는 상위 클래스의 최종 메서드를 재정의할 수 없습니다.
예시
class Car { public void brake() { System.out.println("brake() method of Car"); } public final void accelerate() { System.out.println("accelerate() method of Car"); } } public class BenzCar extends Car { public static void main(String[] args) { BenzCar benz = new BenzCar(); benz.accelerate(); benz.brake(); } public void accelerate() { System.out.println("accelerate() method of Benz Car"); } }
위의 예에서 최종 메소드(accelerate() 메소드) 를 재정의하려고 하면 수퍼클래스 . 컴파일러는 오류를 발생시킵니다. . 따라서 우리는 자바에서 슈퍼클래스의 최종 메소드를 오버라이드하지 않습니다.
출력
overridden method is final