- 개발 시간을 단축할 수 있다.
(B가 개발 되어있지 않아도 I만 있으면 A를 개발할 수 있음)

- 변경에 유리한 설계가 가능하다.
- 표준화가 가능하다.(JDBC : 자바 표준 인터페이스)
EX. Java Application - JDBC - DB(Oracle, MySQL)
- 서로 관계없는 클래스들에 관계를 맺어줄 수 있다.

예제 - SCV, Tank, Dropship 을 다음과 같이 repair 메서드를 만들고 싶다.
-> Repairable 인터페이스를 구현하여 공통점을 만듬

interface Repairable {}
class SCV extends GroundUnit implements Repairable{
...
}
class Tank extends GroundUnit implements Repairable{
...
}
class Dropship extends AirUnit implements Repairable{
...
}
void repair(Repairable r){
if (r instanceof Unit){
Unit u = (Unit)r;
while(u.hitPoint != u.MAX_HP){
u.hitPoint++;
}
}
}