Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- Django REST
- livedata
- C
- Python
- RxJava
- 안드로이드 구글맵
- Kotlin
- flutter firestore
- android push
- Flutter TextField
- Java
- C/C++
- dart
- 코틀린
- Django REST framework
- 안드로이드
- Android
- 알고리즘
- FLUTTER
- mfc
- Django REST Android
- RxAndroid
- 프로그래머스
- UWP
- NDK
- Android P
- C++
- android architecture component
- Rxjava2
- kodility
Archives
- Today
- Total
개발하는 두더지
[Effective Java 규칙16] 상속(extends)하는 대신 구현(implements)하라 본문
[Effective Java 규칙16] 계승하는 대신 구성하라
Effective Java 2/E 책과 구글링을 통해 내용을 정리하고 개인적인 견해가 포함된 글입니다.
상속은 강력한 도구이지만 캡슐화 원칙을 침해하므로 문제를 발생시킬 가능성이 있다. 그리고 상위 클래스와 하위 클래스가 IS-A 관계일 때만 사용하는 것이 좋다. 만약 IS-A 관계가 성립해도, 하위 클래스가 상위 클래스와 다른 패키지에 있거나 상속을 고려해 만들어진 클래스가 아니라면 하위 클래스는 깨지기 쉽다. 이런 문제들을 피하려면 상속(extends)대신 구현(implements)해야한다. 래퍼 클래스를 만든다면 하위 클래스를 만드는 것보다 견고하고 강력하다
//TODO 철학/유래 찾아보기
자바는 처음 설계부터 다중상속을 지원하지 않게 만들어져서 나중에 다중상속처럼 지원가능한 인터페이스가 생김
'Java,Android' 카테고리의 다른 글
[Effective Java 규칙18] 추상 클래스 대신 인터페이스를 사용하라 (0) | 2018.09.17 |
---|---|
[Effective Java 규칙17] 상속을 위한 설계와 문서가 없다면 상속하지 마라 (0) | 2018.09.17 |
[Effective Java 규칙15] 변경 가능성을 최소하하라 (0) | 2018.09.14 |
[Effective Java 규칙13] 클래스와 멤버의 접근 권한은 최소화하라 (0) | 2018.09.14 |
[Effective Java 규칙12] Comparable 구현을 고려하라 (0) | 2018.09.14 |
Comments