Is-A와 HAS-A 또는 Inheritance와 Composition
상속(Inheritance), Is-A 관계
상속은 한 클래스가 다른 클래스의 속성과 메소드를 물려받는 것입니다.
상속을 사용하면 코드의 재사용성을 높일 수 있습니다.
자식 클래스는 부모 클래스의 속성과 메소드를 물려받고, 필요한 경우 추가적인 속성과 메소드를 정의할 수 있습니다.
Is-A 관계는 한 객체가 다른 객체의 특수한 형태로 볼 수 있는 관계를 의미합니다.
Composition (구성, Has-A 관계)
Composition은 한 클래스가 다른 클래스의 객체를 포함하는 방식으로 클래스 간의 관계를 나타냅니다.
이 관계를 Has-A 관계라고도 합니다. Composition을 사용하면 클래스 간의 결합도를 낮추고, 유지 보수성을 향상시킬 수 있습니다.
Has-A 관계는 한 객체가 다른 객체를 포함하거나 참조하는 관계를 의미합니다.
쓰임새와 특징
Inheritance (상속, Is-A 관계)
상속은 주로 다음과 같은 용도로 사용됩니다.
-
코드 재사용: 부모 클래스의 속성과 메소드를 자식 클래스에서 재사용할 수 있습니다.
-
다형성 구현: 상속을 통해 여러 자식 클래스들이 부모 클래스의 메소드를 오버라이딩하여 다양한 동작을 구현할 수 있습니다.
-
상속은 한 클래스가 다른 클래스의 특수한 형태로 간주될 수 있는 경우에 사용됩니다.
-
상속은 부모 클래스의 속성과 메소드를 자식 클래스에 물려주어 코드의 재사용성을 높입니다.
-
다형성을 구현할 수 있습니다.
-
상속 관계에서 계층의 깊이가 높아지면 유지 보수가 어려워질 수 있습니다.
Composition (구성, Has-A 관계)
구성은 주로 다음과 같은 용도로 사용됩니다.
-
결합도 낮춤: 클래스 간의 결합도를 낮추어 유지 보수성을 향상시킬 수 있습니다.
-
클래스 간의 관계 표현: 클래스 간의 포함 관계를 표현할 수 있습니다.
-
상속 대신 구성을 사용하면 변경에 더 유연하게 대응할 수 있습니다.
-
클래스 간의 관계를 더 명확하게 표현할 수 있습니다.
-
독립적인 클래스를 조합하여 다양한 기능을 구현할 수 있습니다.
부족한 점이나 잘못 된 점을 알려주시면 시정하겠습니다 :>
'DEV > Java' 카테고리의 다른 글
다운 캐스팅(DownCasting) (0) | 2023.04.27 |
---|---|
가상 함수(Virtual Method) (0) | 2023.04.27 |
다형성(Polymorphism) (0) | 2023.04.27 |
Overriding(재정의) (0) | 2023.04.27 |
상속(Inheritance) (0) | 2023.04.27 |