클래스를 작성하는데에 있어 가끔 상속관계로 맺어줄 건지, 포함관계로 맺어줄 건지 선택하기 어려울 때가 있다.
오늘 공부하며 자바의 정석에서 본 내용인데 너무 유용해서 TIL에 적어본다
상속 관계는 -is a-
포함 관계는 -has a-
예를 들어 컴퓨터 클래스를 만든다고 하면
ex 1) 전자제품
컴퓨터는 전자제품이다. (is a)
컴퓨터는 전자제품을 가지고 있다. (has a)
밑에도 얼추 맞긴 한데, 그 전자 제품들이 메인보드, 램등이 될테니 컴퓨터는 전자제품을 상속받는 걸로 하고
ex 2) 메인보드
컴퓨터는 메인보드다. (is a)
컴퓨터는 메인보드를 가지고 있다. (has a)
메인보드는 포함관계
메인보드는 전자제품이다. (is a)
메인보드는 전자제품을 가지고 있다. (has a)
메인보드는 전자제품이랑 상속 관계
ex 3) 램
컴퓨터는 램이다. (is a)
컴퓨터는 램을 가지고 있다. (has a)
램도 포함관계
램은 전자제품이다. (is a)
램은 전자제품을 가지고 있다. (has a)
램은 전자제품이랑 상속 관계
public class Computer extends Electronics {
Mainboard mainboard = new Maninboard();
Ram ram = new Ram();
}
public class Ram extends Electronics {
}
public class Mainboard extends Electronics {
}
이런 식으로 작성 할 수 있을 것이다.
생각보다 되게 간단한 팁인데, 고민을 정말 많이 줄여 줄 수 있을 거 같다.
'TIL' 카테고리의 다른 글
TIL 2023-11-01 Spring MVC (0) | 2023.11.01 |
---|---|
TIL 2023-10-31 Spring과 SpringBoot (0) | 2023.10.31 |
TIL 2023-10-27 배열 선언 시 List와 ArrayList (0) | 2023.10.27 |
TIL 2023-10-26 boolean으로 for문 조회하기 (0) | 2023.10.26 |
TIL 2023-10-25 static이란?? static 정리! (0) | 2023.10.25 |