[Java] 5.1.3 필드 재정의(override)

출간일 2016년 11월 28일

판매가 2000원

형태 ebook

학습에 도움이 되시면 ebook을 구입하여 소장하시면 감사하겠습니다.

언제나 휴일 출판사의 수익금의 대부분은 아프리카에 기부하고 있습니다.


5.1.3 필드 재정의(override)

 

만약 기반 클래스에 캡슐화한 멤버 필드와 같은 이름으로 파생 클래스에서 멤버 필드를 캡슐화하면 어떻게 될까요?

 

이 때도 기반 클래스에 캡슐화한 멤버 필드는 무효화하여 파생 형식에서는 직접적으로 사용할 수는 없습니다. 하지만 무효화한 메서드를 호출하여 사용하는 것처럼 super 키워드를 이용하면 무효화 멤버 필드를 사용할 수 있습니다.

 

실제 프로그래밍에서 메서드 재정의는 많은 곳에서 사용하지만 멤버 필드를 재정의는 개발자에게 혼돈만 가중시켜서 거의 사용하지 않습니다. 이에 관한 사항은 여러분께서 다양한 프로그래밍 과정을 통해 느끼고 판단할 수 있을 것입니다.

 

예를 들어 음악가의 멤버 필드에 음악가 이름을 name 멤버 필드로 캡슐화하고 음악가를 파생하는 피아니스트에서 피아니스트 이름을 name 멤버 필드를 재정의한다고 가정합시다. 이 때 피아니스트 개체에는 기반 형식부분인 음악가 이름도 있고 피아니스트 이름도 존재하는 꼴이 됩니다. 이는 개발 과정에서 혼란만 가중할 뿐입니다.

 

[소스 5.5]기반 형식의 멤버 필드를 파생 클래스에서 재정의한 예

실행 결과