>> 인터페이스도 구현 클래스의 부모로 취급한다.
현재 Fighter의 클래스가 Unit과 Fightable을 상속 및 구현하고 있다고 하면
이 가능하다.
다형성에서 배웠다시피,, 상속 관계에 있을때 자손의 인스턴스가 부모의 참조변수를 가르킬 수 있다.
즉
Fightable f = new FIghter(); 의경우는
Fighter가 아무리 많은 멤버를 가지고 있더래도
f의 리모컨은 자기가 가지고 있는 멤버밖에 사용하지 못한다 .
>> f.move(), f.attack()
>> 인터페이스 타입 매개변수는 인터페이스를 구현한 클래스의 객체만 가능
즉 public void attack(Fightable f) {} 의 경우
>> attack 의 매개변수로는 Fightable 을 구현한 클래스의 인스턴스만 올수 있다
인터페이스를 메서드의 리턴타입으로 지정할 수 있다.
>> 인터페이스가 리턴타입인 경우는 -->> 해당 인터페이스를 구현한 객체를 반환 가능하다
public Fightable method(){
return new Fighter();
// Figher객체는 Fightable을 구현했으므로 다형성으로 인해 가능하다.
}
'dev > JAVA' 카테고리의 다른 글
[JAVA] 익명 클래스 (0) | 2022.05.31 |
---|---|
[JAVA] 인터페이스의 장점 (0) | 2022.05.31 |
[JAVA] 인터페이스 (0) | 2022.05.31 |
[JAVA] 매개변수의 다형성 (0) | 2022.05.30 |
[JAVA] 다형성 / 참조변수간의 형변환 (0) | 2022.05.30 |