상속은 언제 사용 할까?
1. IS-A 관계(is a relationship : inheritance) -> 재활용(성능 개선)
- 일반적인(general) 개념과 구체적인(specific) 개념과의 관계
- 상위 클래스 : 하위 클래스보다 일반적인 개념 ( 예: Employee )
- 하위 클래스 : 상위 클래스보다 구체적인 개념들이 더해짐 ( 예: Engineer, Manager...)
- 상속은 클래스간의 결합도가 높아지는 설계
- 상위 클래스의 수정이 많으면, 하위 클래스에 영향을 미칠 수 있음
- 계층구조가 복잡하거나 hierarchy가 높으면 좋지 않음
뼈대를 만들고, 다양한 확장이 필요하다면 IS-A
2. HAS-A 관계(composition) -> 내가 가져다씀
- 클래스가 다른 클래스를 포함하는 관계 ( 변수로 선언 )
- 코드 재사용의 가장 일반적인 방법
- Student가 Subject를 포함하는
- Library를 구현할 때 ArrayList 생성하여 사용
- 상속하지 않음
'JAVA' 카테고리의 다른 글
3-9.객체 지향 핵심 - 추상 클래스(abstract class) (0) | 2022.01.22 |
---|---|
3-8.객체 지향 핵심 - 다운캐스팅, instanceof (0) | 2022.01.22 |
3-6.객체 지향 핵심 - 다형성 (0) | 2022.01.17 |
3-5.객체 지향 핵심 - 메서드 재정의와 가상 메서드 원리 (0) | 2022.01.16 |
3-4.객체 지향 핵심 - 메서드 재정의(overriding, 오버라이딩) (0) | 2022.01.15 |