인터페이스를 이용한 다형성
- 인스턴스도 구현 클래스의 부모로 봄
- 인터페이스 타입 매개변수는 인터페이스 구현한 클래스의 객체만 가능
1 | class Fighter extends Unit implements Fightable { |
2 | public void move(int x, int y) { /* 내용 생략 */} |
3 | public void attack(Fightable f) { /* 내용 생략 */} |
4 | } |
5 | // 인터페이스의 구현부는 비어있기 때문에 충돌x |
6 | |
7 | Unit u = new Fighter(); |
8 | Fighter f = new Fighter(); |
- 인터페이스를 메서드의 리턴타입으로 지정할 수 있음
1 | Fighter method(){ |
2 | ... |
3 | Fighter f = new Fighter(); |
4 | return f; |
5 | } |