Java

[Java, 객체지향] IS-A 관계, HAS-A 관계 차이 (상속 Inheritance)

15호의 개발자 2021. 8. 11. 15:58
반응형

[Java, 객체지향] IS-A 관계, HAS-A 관계 차이 (상속 Inheritance)

 

 

IS-A 관계 (is a relationship)

말 그대로, '~은 ~이다.'로 상속관계를 의미한다.

 

상속에서 is-a 관계는 일반적인 개념과 구체적인 개념과의 관계이다.

상위 클래스가 일반적인 개념 클래스이고

하위 클래스가 구체적인 개념 클래스가 된다.

(ex. 상위 클래스: 동물 / 하위 클래스: 포유류, 파충류)

 

is-a 관계는 단순히 코드를 재사용하는 목적으로는 사용하지 않는다.

 

(*IS-A 관계 읽는법: "이즈 어 관계"라고 읽는다.)

 

 

 

HAS-A 관계 (has a relationship)

말 그대로, '~은 ~을 가지고 있다.'로 포함관계를 의미한다.

상속에서 has-a 관계는 한 클래스가 다른 클래스를 소유한 관계이다.

 

has-a 관계는 코드 재사용의 한 방법이다.

 

상속관계(is-a관계)보다는 포함관계(has-a관계)를 훨씬 많이 쓴다.

 

(*HAS-A 관계 읽는법: "해즈 어 관계"라고 읽는다.)

반응형