상위 클래스에 정의된 메서드의 구현 내용이 하위 클래스에서 구현할 내용과 맞지 않는 경우 하위 클래스에서 동일한 이름의 메서드를 재정의 할 수 있음. 즉, 상위 클래스에서 이미 정의된 내용의 메서드를 하위 클래스에서 쓰는게 맞지 않는 다면, 하위 클래스에서 내용을 재정의 할 수 있다.
@Override 어노테이션
가상메서드
메서드의 이름과 메서드 주소를 가진 가상 메서드 테이블에서 호출될 메서드의 주소를 참조함, 즉, 매서드 자체는 주소값을 의미하는데 하위클래스가 상위 클래스의 매서드를 재정의한다면 새로운 주소값이 생겨서 그 주소로 매서드 호출이 되는 것이고, 그렇지 않다면 상위 클래스가 정의해둔 매서드가 호출이 되는 것. 간단한 것이지만, 하위 클래스에서 매서드를 재정의했을 경우 그 재정의된 매서드가 호출되지만, 재정의하지 않은 매서드의 경우 그러한 매서드 호출시 상위 클래스의 매서드를 호출하게 된다는 뜻
자바 객체지향 프로그래밍 - 12 [다운 캐스팅과 instanceof] (0) | 2023.01.10 |
---|---|
자바 객체지향 프로그래밍 - 11 [다형성] (0) | 2023.01.10 |
자바 객체지향 프로그래밍 - 9 [singleton pattern] (0) | 2022.12.23 |
자바 객체지향 프로그래밍 - 8 [static] (0) | 2022.12.23 |
자바 객체지향 프로그래밍 - 7 [this] (0) | 2022.12.23 |