인프런 커뮤니티 질문&답변

김규태님의 프로필 이미지
김규태

작성한 질문수

객체 지향 프로그래밍 입문

상속보단 조립

상속 재활용 단점 중 상위 클래스 변경 어려움에 대해서 질문이 있습니다.

해결된 질문

작성

·

215

1

상속 재사용 단점 중 상위 클래스 변경이 어렵다는 부분에서 "상위 클래스가 어떤식으로 동작 하는지 어느정도 파악 후 하위 클래스가 기능 재사용이 가능하다"고 구두로 설명해주셨는데요, 여기에 추가적으로 상위 클래스는 하위 클래스에 대해 캡슐화가 약해지는 문제가 발생한다고 추가로 설명을 해주셨습니다.

여기서 상위 클래스는 하위 클래스에 대해 캡슐화가 약해진다는 게 구체적으로 어떤 의미 일까요?

제가 파악하기에는 예시로 계층 관계의 깊이가 깊어질 수록(루트와 단말 사이에 많이 상속 객체가 존재할  경우) 최상위 클래스와 최하위 클래스의 기능이 많이 다른 경우 최상위 클래스는 최하위 클래스를 캡슐화 하기 어렵다고 보는게 옳을까요?

감사합니다.
이상입니다.

 

답변 2

1

최범균님의 프로필 이미지
최범균
지식공유자

상위 클래스의 캡슐화가 약해진다는 의미입니다.

상속을 통해 기능을 재사용하다보면 하위 클래스가 상위 클래스의 내부 구현에 직접적으로 의존하는 상황이 벌어질 수 있습니다. 예를 들어 상위 클래스에 정의된 필드에 직접 접근하거나 상위 클래스의 메서드의 실행 순서를 보고 그에 맞게 하위 클래스를 구현하는 식으로요. 상위 클래스의 private 메서드를 protected로 바꾸기도 하구요. 이런 코드가 증가할수록 상위 클래스의 캡슐화하는 약해지게 됩니다.

0

김규태님의 프로필 이미지
김규태
질문자

답변 감사합니다. 이해가 되었습니다.

김규태님의 프로필 이미지
김규태

작성한 질문수

질문하기