My Blog

자바의 상속은 상속이 아닌 확장이다 본문

자바

자바의 상속은 상속이 아닌 확장이다

JAESG 2023. 11. 29. 14:33

'스프링 입문을 위한 자바 객체 지향의 원리와 이해' 를 읽고 글을 기록합니다.

자바를 공부할 때 상속관계를 잘못 이해하고 있어서 글을 정리하겠습니다.

 

자바를 공부할 때 상속은 부모 - 자식 관계를 상속 관계라도 가르치고 있습니다. 하지만 이는 정확한 내용은 아니라고 소개합니다.

상속 관계에서 반드시 만족해야 할 문장은 '하위 클래스는 상위 클래스다' 입니다. 이 예시를 부모 - 자식 관계에 적용을 해보면

아들은 아버지다

딸은 아버지다

와 같은 내용들이 나오고 있습니다. 또 다른 근거는 자바에서는 상속이라는 키워드가 존재하지 않을뿐더러 대신 확장 extend가 존재하는 것을 알 수 있습니다.

 

이처럼 자바 개발팀도 객체 지향의 상속을 확장으로 이해한 것으로 알려집니다.

확장에 대해서는 이렇게 설명합니다

이처럼 객체 지향의 상속을 확장, 세분화, 구체화 개념으로 이해하는 것이 좋다고 나와있습니다.

이렇게 되면 위에서 설명한 예시가 잘 맞는 것을 알 수 있습니다

고래는 포유류다

참새는 조류이다

조류는 동물이다

 

이처럼 매끄러운 문장을 나타낼 수 있습니다.

 

또한 상속은 is a 관계를 만족해야 한다고 나와있습니다.

하위 클래스 is a 상위 클래스 = 하위 클래스는 하나의 상위 클래스이다. 라는 걸 알 수 있습니다.

이 말은 곧 하위 집단은 하나의 유일무이한 존재라는 논리가 되버립니다. 그러니 더 명확한 표현인 is a kind of를 사용하라고 권하고 있습니다.

 

끝으로 이 세 문장을 기억하라고 합니다

1. 객체 지향의 상속은 상위 클래스의 특성을 재사용하는 것이다.

2. 객체 지향의 상속은 상위 클래스의 특성을 확장하는 것이다.

3. 객체 지향의 상속은 is a kind of 관계를 만족해야 한다.

 

 

 

 

 

출처 : 김종민, ⌜스프링 입문을 위한 자바 객체 지향의 원리와 이해⌟, 위키북스, 2022

728x90
Comments