일반적으로 다중 구현용 타입으로는 인터페이스가 가장 적합하다. 복잡한 인터 페이스라면 구현하는 수고를 덜어주는 골격 구현을 함께 제공하는 방법을 꼭 고 려해보자. 골격 구조 현은 '가능한 한' 인터페이스의 디폴트 메서드로 제공하여 그 인터페이스를 구현한 모든 곳에서 활용하도록 하는 것이 좋다. '가능한 한' 이라고 한 이유는, 인터페이스에 걸려 있는 구현상의 제약 때문에 골격 구현을 추상 클래스로 제공하는 경우가 더 흔하기 때문이다.
- 기존 클래스에도 손쉽게 새로운 인터페이스를 구현해 넣을수 있다.
- 인터페이스로는 계층구조가 없는 타입 프레임워크를 만들 수 있다.
- 레퍼클래스와 함께 사용하면, 인터페이스는 기능을 향상시키는 안전하고 강력한 수단이된다. (상속해서 만든 클래스는 래퍼클래스보다 활용도가 떨어지고 깨지기는 쉽다)