본문 바로가기
dev/JAVA

[JAVA] 인터페이스의 다형성

by dev_Step 2022. 5. 31.

>> 인터페이스도 구현 클래스의 부모로 취급한다.

현재 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