OOP Decision Table

관계 판단은 is-a, has-a, can-do, hide 중 어디에 가까운지로 좁힌다

상속을 남용하지 않고, 포함·인터페이스·정보은닉을 구분하면 보기 판단이 빨라진다.

관계별 선택

is-a상속

Dog is an Animal처럼 종류 관계일 때 적절하다.

has-a포함

Car has an Engine처럼 부품을 가진 관계다.

can-do인터페이스

Comparable처럼 할 수 있는 기능을 약속한다.

hide정보은닉

필드는 감추고 메소드로 안전하게 접근한다.

오답 제거 순서

1. 클래스/객체

설계도인지 실제 인스턴스인지 먼저 구분한다.

2. 상속/포함

종류 관계가 아니면 has-a 포함을 의심한다.

3. 오버로딩/오버라이딩

매개변수 차이인지, 부모 메소드 재정의인지 나눈다.