상속과 확장의 차이

채상엽·2022년 5월 10일
0

Java

목록 보기
4/5

layout: post
title: "상속과 확장의 차이"
date: 2022-02-15T00:00:00-00:00
author: sangyeop
categories: TIL


상속과 확장의 차이

자바는 상속을 지원하지 않는다.

대신 확장을 지원한다. 무슨 말일까?

코드 예시를 보자

public class Main inherits Sub {
	...
}

말 장난을 쳐 보았는데, 자바는 말 그대로 상속이 아니라 다음과 같이 확장을 지원한다

public class Main extends Sub {
	...
}

어떤 차이가 있을까? 상속은 내가 물려받는 재산에 초점이 있다. 그러나 확장은 내가 해야 할 일에 초점이 있다. 이게 무슨 의미냐면 is-ahas-a의 차이라고 할 수 있겠다.

상속은 has-a에 가깝고 확장은 is-a에 가깝다. 자바의 확장은 is-a이기 때문에, 부모 객체를 확장한 자식 객체를 외부에서 봤을 때 여전히 부모 객체와 같게 보인다면 좋은 객체 지향 원칙을 준수하게 된 것이다.

profile
프로게이머 연습생 출신 주니어 서버 개발자 채상엽입니다.

0개의 댓글