JAVA/포스팅

자바 상속 포함관계

짜집퍼박사(짜박) 2023. 11. 10. 23:51

자바에서 상속과 포함관계(Composition)는 두 가지 서로 다른 관계 형태입니다. 각각의 특징과 사용 사례에 대해 자세히 알아보겠습니다.

 

1. 상속(Inheritance)

- 상속 관계는 클래스 간의 관계를 나타내며 슈퍼클래스(부모 클래스)와 서브클래스(자식 클래스) 간의 관계입니다.
- 특징 : 슈퍼클래스의 멤버 변수 및 메서드를 서브클래스에서 상속받습니다. 이것은 슈퍼클래스의 코드를 재사용하고 확장할 수 있는 강력한 메커니즘을 제공합니다.
- 키워드 : extends 키워드를 사용하여 상속 관계를 표현합니다.
- 장점 : 코드 재사용, 다형성(Polymorphism), 계층 구조 형성 등의 이점을 제공합니다.
- 단점 : 다중 상속을 지원하지 않으며, 클래스 간의 강한 결합을 초래할 수 있습니다.

 

2. 포함관계(Composition)

- 포함 관계는 클래스가 다른 클래스의 인스턴스를 포함하거나 사용하는 관계입니다.
- 특징 : 한 클래스가 다른 클래스의 객체를 생성하거나 참조하며, 이것은 "Has-A" 관계를 나타냅니다. 예를 들어, 자동차 클래스가 엔진 클래스의 객체를 가지고 있는 것이 포함 관계입니다.
- 구현 : 포함 관계는 멤버 변수로 다른 클래스의 객체를 선언하거나 생성자를 통해 객체를 초기화하여 구현됩니다.
- 장점 : 클래스 간의 느슨한 결합을 유지하고, 코드의 모듈화와 재사용을 촉진합니다. 또한 다중 포함 관계를 지원하므로 유연한 설계가 가능합니다.
- 사례 : 컴퓨터 클래스는 모니터, 키보드, 마우스 등의 디바이스 클래스의 객체를 포함할 수 있습니다.

 

포함 관계는 객체 지향 설계에서 강력한 도구로 사용되며, "클래스는 무엇을 가지고 있나?"와 같은 질문에 대답합니다. 반면에 상속 관계는 "클래스는 무엇인가?"와 같은 질문에 대답합니다. 이 두 가지 관계를 적절하게 조합하여 객체 지향 설계를 수립하고 객체 간의 관계를 효과적으로 모델링할 수 있습니다

 

With ChatGPT

'JAVA > 포스팅' 카테고리의 다른 글

자바 상속 예제  (0) 2023.11.10
자바 단일상속  (0) 2023.11.10
자바 상속 클래스간의 관계  (0) 2023.11.10
자바 상속의 장점  (0) 2023.11.10
자바 상속의 정의  (0) 2023.11.10