상속을 사전에 검색했을 때 '뒤를 이음' 이라는 의미가 제일 먼저 나옵니다.
자바의 상속도 부모와 자식을 떠올리기 보다는 '뒤를 잇는다'는 의미를 떠올려주세요.
왜냐하면 클래스의 상속이라는 건
할아버지 - 아버지 - 딸과 같은 가계도와 같지 않고
동물 - 포유류 - 인간과 같은 분류도와 같기 때문입니다.


"아버지가 할아버지의 뒤를 잇고, 아들이 아버지의 뒤를 잇는 거 아닌가요?"라고 하실 수 있습니다.
하지만 할아버지와 아버지, 딸의 공통 특성을 생각해봅시다. 키, 몸무게, 성별, 나이, 자다(), 먹다(), 숨쉬다() 등....
하지만 위 특성들이 할아버지로부터 아버지, 딸에게 전달되는 것인가요?
이러한 공통 특성은 오히려 인간(분류)이기에 공유하게 됩니다.
즉 인간이라는 상위 클래스가 있고 이를 상속하는(뒤를 잇는) 서브 클래스로, 할아버지, 아버지, 아들-영조, 사도세자, 정조가 있는 것입니다.
**인간 정조 = new 인간();** 어색하지 않지만
**아버지 딸 = new 아버지();** 어색합니다!
추가로
바바의 상속이 분류도가 아닌 가계도와 같다면
아들은 아버지와 어머니로부터 특성을 상속 받았을 것이지만- 다중 상속-
자바는 위와 같은 다중 상속을 지원하지 않습니다(상속은 가계도가 아닌 분류도).

상속을 나타내는 이미지에 인터페이스를 추가했습니다.
인터페이스는 "~할 수 있는" 형태로 만드는 것이 좋습니다. 자바 API에는 이러한 형식의 다양한 인터페이스를 볼 수 있습니다. 예를 들어, Runnable, Cloneable, Comparable 등이 있습니다.
또한 상속에서 상위 클래스는 물려줄 특성이 많을 수록 좋고, 인터페이스는 구현을 강제할 메서드의 개수가 적을수록 좋습니다.
추상화와 상속의 관계를 생각해봅시다.
추상화는 여러 객체로부터 공통 속성을 뽑아내어 클래스를 만드는 일 뿐만 아니라
하위 클래스로부터 상위 클래스를 정의할 때도 적용되는 개념입니다(상속).
위에서 본 인터페이스도 마찬가지입니다.
'~할 수 있는' 이라는 공통 특성을 뽑아내어 만드는 작업(추상화)를 통해
인터페이스가 만들어지기 때문입니다.
참고 :
https://search.shopping.naver.com/book/catalog/32462919817
스프링 입문을 위한 자바 객체 지향의 원리와 이해 : 네이버 도서
네이버 도서 상세정보를 제공합니다.
search.shopping.naver.com
'Java > Java 문법' 카테고리의 다른 글
정규 표현식(Regular Expression) (2) | 2024.10.12 |
---|---|
Enum (1) | 2024.10.10 |
Java) 변수 선언, 저장 및 메모리 영역 (3) | 2024.10.05 |
캡상추다 - 추상화(Abstraction, 공통 특성 추출) (2) | 2024.10.04 |
스트림 예시 (0) | 2024.10.02 |