interface ISmartPhone { void call(String number); // 통화 기능 void message(String number, String text); // 문제 메세지 전송 기능 void wirelessCharge(); // 무선 충전 기능 void AR(); // 증강 현실(AR) 기능 void biometrics(); // 생체 인식 기능}
스마트폰 인터페이스에는 스마트폰이라면 가지고 있을 통화나 메세지 기능 이외에도 무선 충전, AR 뷰어, 생체인식 등의 다양한 기능을 포함
갤럭시 S20이나 S21 클래스를 구현한다면, 최신 스마트폰 기종인 만큼 객체의 동작 모두가 필요하므로 ISP 원칙을 만족
하지만 최신 기종 스마트폰 뿐만 아니라 구형 기종 스마트폰 클래스도 다뤄야 할 경우 문제가 생김
갤럭시 S3 클래스를 구현해야 한다면 무선 충전, 생체인식과 같은 기능은 포함되어 있지 않을 수 있음
이렇게 된다면 추상 메소드 구현 규칙상 오버라이딩은 하되, 메서드 내부는 빈공간으로 두거나 혹은 예외(Exception)을 발생토록 구성해야 함
⇒ 결국 필요하지도 않은 기능을 어쩔 수 없이 구현해야하는 낭비가 발생된 것