What I learned

어제 오늘 Java 개념 및 기본다지기에 집중하였다. 오늘은 객체지향 관련 강의를 보고 스터디를 진행했다. 그 중에서도 조금 헷갈렸던 부분이 상속관계와 포함관계였다.

아래 코드를 보면서 해당 내용을 정리해보았다.

상속관계

  • 상속 관계는 부모 클래스에서 자식 클래스에 단방향으로 부모 클래스 내에 있는 모든 것을 자식에게 물려준다는 의미이다. 즉, 부모 클래스 안의 모든 필드, 멤버, 메소드 등을 자식 클래스에게 넘겨주며, 자식 클래스는 해당 값들을 모두 가지고 있다는 의미이다.

포함관계

  • 포함 관계는 클래스가 다른 클래스를 포함하는 관계이다. 즉, 아래의 이미지를 보면 Car 클래스에는 Handle이라는 클래스가 '포함' 되어있다. 포함관계를 이해하기가 조금 어려웠지만 아래 코드를 보며 정리 및 이해를 할 수 있었다.

마지막으로 정리를 해보면...
상속 관계 = "A는 B이다" ('is-a')
포함 관계 = "A는 B를 가지고 있다" ('has-a')

예를 들어, "포유류 & 고래"를 볼때,
고래는 표유류이다. - 상속관계
표유류는 고래를 가지고 있다. - 포함관계
이렇게 보면 포유류 = 고래는 상속관계가 더 적합하다.

다른 예시를 들면, "Car & Door"를 볼때,
Car는 Door이다. - 상속관계
Car는 Door를 가지고 있다. - 포함관계
이렇게 보면 Car = Door은 포함관계라고 볼 수 있다.

profile
Think out of the Box

0개의 댓글