개발자 항해

인터페이스(interface) - 3 본문

Programming/Java

인터페이스(interface) - 3

리치Y 2022. 8. 2. 09:43

3) 인터페이스 장점 - 상속 관계가 없는 객체끼리의 관계 부여하여 다형성 활용가능

 

 

① 상속 관계가 아닐 경우 불편한 예

 

 

  HandPhone 클래스와 DigitalCamera는 특정 클래스와 상속관계가 아니므로

두 클래스의 유일한 공통 클래스는 Object 클래스 뿐이다.

따라서, 업캐스팅을 통해 다형성을 적용하려면 Object 타입으로 업캐스팅해야 하며

업캐스팅 후에는 두 객체의 고유 멤버 접근이 불가능하므로

다시 다운캐스팅을 통해 각 객체의 고유 멤버에 접근해야한다.

 

 

 

 

 

② 인터페이스를 통해 상속관계가 아닌 클래스끼리 상속 관계 부여

 

 HandPhone2 클래스와 DigitalCamera2는 특정 클래스와 상속 관계가 아니지만 

두 클래스와 유일한 공통클래스는 Object 클래스 외에 

Charable 인터페이스를 정의하여 공통 부모로 정의 하면 

업캐스팅 후에소 두 객체의 고유 멤버인 charge() 메서드가

인터페이스 내의 추상메서드로 정의되어있기 때문에 타입판별없이, 다운캐스팅 없이도 공통 메서드 호출이

가능하다.