interface Fightable { // 인터페이스
void move(int x, int y);
}
class Fighter extends Unit implements Fightable {
public void move(int x, int y){}
public void attack(Fightable f){} // 인터페이스 타입 매개 변수
}
Unit u = new Fighter(); // 조상 클래스
Fightable f = new Fighter(); // 인터페이스 참조 변수로 객체 연결
Fightable method(){ // 리턴 (반환) 타입
Fighter f = new Fighter();
return f; // 인터페이스를 구현한 객체를 반환
// ----->
// return new Fighter(); // 한 문장으로 표현
}
Fightable f = method(); // 저장하는 변수 타입도 일치 시킨다.
// ----->
// Fightable f = new Fighter(); // 다형성