메서드 재정의 (@Override)
메서드 재정의 조건
부모 클래스의 메서드와 동일한 시그니처를 가져야 한다.
접근 제한을 더 강하게 오버라이딩 불가하다.
(public 을 default나 private으로 수정이 불가하다)
(반대로 default는 public으로 수정 가능하다)
오버라이딩의 조건
* 중요! 부모 클래스의 메서드를 자식 클래스에서 오버라이딩 할 때
접근 제어자를 부모 클래스의 메서드보다 좁은 범위로 변경할 수 없다.
예외는 부모 클래스의 메서드보다 많이 선언할 수 없다.
@Override 어노테이션
메서드 재정의 효과
부모 메서드 사용(super)
final 키워드의 용도
final 필드: 수정 불가한 필드이다.
final 클래스: 부모로 사용 불가한 클래스 이다.
final 메서드: 자식이 재정의할 수 없는 메서드 이다.
상속할 수 없는 final 클래스
-자식 클래스 만들지 못 하도록 final 클래스로 생성할 수 있다.
★오버라이딩(Overriding) 부모 메서드 사용(super)★[중요..!!]
오버라이딩(Overriding)과 부모 메서드를 사용 super 하는 과정을 한 번에 볼 수 있는 클래스이며,
클래스 메서드를 사용할 때, 많이 응용되는 코딩 이다.
가장 아래 쪽에는 출력되는 값도 나와있으니 확인해보세요.
자식 Tv 클래스와 Computer클래스가 부모 Product클래스 를 상속받았다.
super로 부모 메서드를 사용하여 price와 bonusPoint 값을 대입하고,
Object 오버라이딩으로 자식 메서드에서 return 값을 변경했다.
Buyer b, Tv t, Computer com 객체를 이용하여 주소를 찾아 값을 출력한 클래스 이다.
어떻게 값을 찾고, 어떤 값들을 가지고 있는지 한 눈에 알아 볼 수 있도록 설계도를 그려보았다.
"설계도를 많이 그려보면서 조금 더 코딩이 눈에 확연하게 잘 들어올 수 있도록 반복 또 반복이다!" - 함께해요