inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

이펙티브 자바 완벽 공략 2부

강의 소개

아이템19 - 구체 클래스가 표준 인터페이스를 구현하지 않았는데 상속을 금지하면 사용하기에 상당히 불편해진다.

해결된 질문

467

Jinyoung Choi

작성한 질문수 5

1

안녕하세요 강사님! 이펙티브 자바 강의 재밌게 수강하고 있습니다. 항상 감사드립니다. 책의 내용 중 하나가 도저히 이해가 되지 않아 질문 드립니다!

[아이템19]
"구체 클래스가 표준 인터페이스를 구현하지 않았는데 상속을 금지하면 사용하기에 상당히 불편해진다. 이런 클래스라도 상속을 꼭 허용해야겠다면 합당한 방법이 있다."
에서 "사용하기에 상당히 불편해진다." 가 무얼 뜻하는지 잘 모르겠습니다. 그리고 상속을 금지했는데, 허용한다? 라는 말도 잘 이해가 가지 않습니다!

제가 이해하기로는
1. "구체 클래스가 표준 인터페이스를 구현하지 않았는데 상속을 금지하면 사용하기에 상당히 불편해진다. :
표준 인터페이스를 구현하지 않은 클래스는 내부 동작을 예측하기가 쉽지 않다. 또한 확장이나 변경이 제한적이다. 상속을 금지하게되면 더 제한적이게 된다.
2. "이런 클래스라도 상속을 꼭 허용해야겠다면 합당한 방법이 있다." :
위와 같이 제한적인 불편함이 싫다면 상속을 허용하고 내부메서드에서 자기의 재정의 가능 메서드를 호출하는 코드를 제거하는데, 그 중 하나의 방법이 'private 도우미 메서드' 방법을 사용하라.

라는 뜻일까요?
맞다면 아래와 같은 상황일까요?

1. 이전 릴리스에서는 표준 인터페이스를 구현하지 않고 상속도 금지한 구체클래스였다.
2. 다음 릴리스때 이 구체클래스를 확장해야겠다고 판단했고, 상속을 허용하기로 했다.

java

답변 2

1

백기선

네 정리하신 내용이 맞습니다. 저도 그렇게 이해했어요. 인터페이스를 구현하지 않았는데, 상속까지 막혀있다면 해당 클래스를 재사용해서 무언가 확장하거나 변경하는게 어려워 지겠죠. OCP (확장에 열려있고, 변경에 닫혀있는 원칙)을 준수하는 이상적인 클래스를 만드는 방법에 대한 설명으로 이해할 수 있습니다.

0

Jinyoung Choi

감사합니다! :)

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴이에요. 강의를 재밌게 수강하고 계셔서 다행입니다. “구체 클래스가 표준 인터페이스를 구현하지 않았는데 상속을 금지하면 사용하기에 상당히 불편해진다”는 문장은 구체 클래스가 특정 인터페이스를 구현하지 않았을 때, 이 클래스를 상속받아 사용하기가 불편해진다는 의미입니다. 구체 클래스가 표준 인터페이스를 구현하지 않았을 경우, 이 클래스를 사용하는 쪽에서는 내부 동작을 예측하기가 어렵고, 확장이나 변경이 제한적일 수 있기 때문에 사용하기가 불편할 수 있습니다.

또한 “이런 클래스라도 상속을 꼭 허용해야겠다면 합당한 방법이 있다”는 문장은 구체 클래스가 표준 인터페이스를 구현하지 않았을 때, 상속을 할 수 없는 경우 사용자가 편리하게 사용할 수 있도록 상속을 허용하는 방법이 있다는 의미입니다. 자세한 내용은 책의 내용을 참고하시면 좋을 것 같습니다. 여기서는 상세한 방법에 대해 설명드리기 어렵습니다.

감사합니다! 더 궁금한 점이 있다면 언제든지 물어보세요.

예외처리 3강 문의

0

6

0

챌린지 시작일 문의

0

17

0

26년2회 실기기출은 언제쯤...

0

29

2

진짜화면이랑달라서못해먹겟어요먹겟어요

0

25

1

네이버 API | '검색 - 책' API 제공 중단

0

30

2

ArticleReadService 관련 질문

0

23

1

kafka 이벤트 발행 실패 시 at-least-once를 보장하는 방법이 궁금합니다.

1

53

1

이론 공부법 요약본 버전 업데이트 문의

0

30

2

domain에 @Entity 와 Repository를 함께 둔 이유가 궁금합니다

1

40

1

해당 프로젝트를 똑같이 따라하려니 spring installer가 버전이 17부터 가능하네요.

0

21

1

Part 2 듣기전 복습하던 중, 아키텍처에 관한 질문이 있습니다.

0

40

2

테스트는 인터페이스를 대상으로 만드는것에 대해 궁금한 점이 있습니다.

0

24

1

Jib 이미지 빌드에서 docker credential 관련으로 이슈가 있다면

1

61

1

리뉴얼 시기

0

41

2

스크립트에 대해 질문 있습니다.

1

58

1

같은 사용자가 연속된 중복 호출할 경우 어떻게 되는지 궁금합니다!

2

68

1

조건 검색 질문

0

39

1

JPA 엔티티로 만들었다고 기술종속이 아닌지에 대한 질문

0

53

3

강의 소스 코드 관련 질문 드립니다.

0

59

1

아이템 28 타입 안전

0

440

1

다음 강의 질문

0

459

1

아이템16, 조금 애매한 것 같습니다.

0

610

1

아이템 32. 핵심 정리 12:00 이 부분에서 질문이 있습니다.

1

516

1

아이템31 비한정적와일드카드

1

384

0