반응형
[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 관계 읽는법: "해즈 어 관계"라고 읽는다.)
반응형
'Java' 카테고리의 다른 글
[Java, 객체지향] 생성자(constructor) 의미와 종류 (+this) (0) | 2021.08.11 |
---|---|
[Java, 객체지향] 오버로딩이란? (overloading) (0) | 2021.08.11 |
[Java, 객체지향] 다형성이란? (Polymorphism) (0) | 2021.08.11 |
[Java, 객체지향] 가상 메서드 (virtual method) (0) | 2021.08.11 |
[Java, 객체지향] 오버라이딩, @Override Annotation(오버라이드 어노테이션) (0) | 2021.08.11 |