본문 바로가기

Language & Framework/Java

자바의 특성 단일상속, 그리고 단점 보완하기.

 

자바는 조상인 c++와 달리 다중 상속이 허용되지 않는다.

즉 한 개의 클래스는 오직 한 개의 부모 클래스만을 소유할 수 있다는 것이다.

모든 것에 장단이 존재하는 법, 이로 인해 복잡성이 낮아졌으나 다중 상속에 비해 불편한 점도 존재한다.

그러나 포함관계를 이용하면 조금 부족하지만 이런 단점을 어느 정도 보완할 수 있다.

 

개와 새라는 두가지의 클래스가 존재하고 있다.

나는 이 두가지 클래스의 메서드를 모두 물려받은 개.. PuppyBird라는 클래스를 만들고 싶다.

하지만 자바는 단일 상속밖에 안되는데 어떻게 해야할까?

 

 

 

 

 

상속이 안되면 하나는 상속하고 하나는 클래스 내부에서 인스턴스로 만들어버리면 된다.

그리고 포함시킨 클래스에 있는 메서드 이름을 그대로 가져와서 해당 인스턴스.메서드로 return해주면 끝!

인스턴스 초기화 블럭에 있는 코드도 아주 잘 실행되는 것을 확인할 수 있다.