final 키워드
- 해당 선언이 최종 상태이며 수정될 수 없음을 의미
- 클래스 및 메소드 선언 시 final 키워드를 사용하면 상속과 관련된다.
상속할 수 없는 final 클래스
- 부모 클래스가 될 수 없어 자식 클래스 만들 수 없음을 의미
재정의할 수 없는 final 메소드
- 부모 클래스에 선언된 final 메소드는 자식 클래스에서 재정의 할 수 없다.
- 여러 개의 부모 클래스 상속할 수 없음
- 부모 클래스에서 private 접근 제한 갖는 필드와 메소드는 상속 대상에서 제외
- 부모와 자식 클래스가 다른 패키지에 존재할 경우 default 접근 제한된 필드와 메소드 역시 제외