추상 클래스
공통 메서드 구현과 강제 메서드 선언을 함께 둘 수 있다.
둘 다 구현 클래스의 구조를 제한하지만, 코드 재사용과 다중 구현 가능성에서 선택 기준이 달라진다.
공통 메서드 구현과 강제 메서드 선언을 함께 둘 수 있다.
객체가 가져야 할 속성과 메서드 형태만 선언한다.
공통 상태나 기본 동작이 있으면 추상 클래스가 어울린다.
여러 구조를 동시에 만족해야 하면 인터페이스가 가볍다.
선택의 핵심은 구현을 공유할 것인가다. 구현이 필요하면 추상 클래스, 형태 약속만 필요하면 인터페이스로 보면 된다.