인터페이스 상속
인터페이스도 다른 인터페이스를 상속할 수 있습니다. 또한 클래스와는 다르게 다중상속을 지원합니다.
ex) public interface 하위인터페이스 extends 상위인터페이스1,상위인터페이스2 { ... }
하위 인터페이스를 구현하는 클래스는 하위 인터페이스와 상위 인터페이스의 모든 추상 메서드에 대한 실체 메서드를 가지고 있어아 합니다.
때문에 구현 클래스로부터 객체를 생성하고 나서 아래와 같이 하위 및 상위 인터페이스 타입으로 변환이 가능합니다.
하위인터페이스 변수 = new 구현클래스();
상위인터페이스1 변수 = new 구현클래스();
상위인터페이스2 변수 = new 구현클래스();
하위 인터페이스 타입으로 변환이 되었다면, 상,하위 인터페이스에 선언된 모든 메서드를 사용가능하고 상위 인터페이스 타입으로 변환되었다면 상위 인터페이스에 선언된 메서드만 사용이 가능합니다.
예제)
인터페이스A
public interface InterfaceA {
public void methodA();
}
인터페이스B
public interface InterfaceB {
public void methodB();
}
인터페이스C
public interface InterfaceC extends InterfaceA, InterfaceB {
public void methodC();
}
구현 클래스
public class ImplementationC implements InterfaceC {
public void methodA() {
System.out.println("ImplementationC-methodA() 실행");
}
public void methodB() {
System.out.println("ImplementationC-methodB() 실행");
}
public void methodC() {
System.out.println("ImplementationC-methodC() 실행");
}
}
실행 클래스
public class Example {
public static void main(String[] args) {
ImplementationC impl = new ImplementationC();
InterfaceA ia = impl;
ia.methodA();
System.out.println();
InterfaceB ib = impl;
ib.methodB();
System.out.println();
InterfaceC ic = impl;
ic.methodA();
ic.methodB();
ic.methodC();
}
}
'자바' 카테고리의 다른 글
JAVA 자바 디폴트 메서드와 인터페이스 확장- 디폴트 메서드가 있는 인터페이스 상속 (0) | 2017.03.13 |
---|---|
JAVA 자바 디폴트 메서드와 인터페이스 확장 - 디폴트 메서드의 필요성 (0) | 2017.03.13 |
JAVA 자바 인터페이스 강제 타입 변환 Casting 과 객체 타입 확인 instancof (0) | 2017.03.13 |
JAVA 자바 인터페이스 매개 변수의 다형성 (0) | 2017.03.13 |
JAVA 자바 인터페이스 필드의 다형성 // 인터페이스 배열로 구현 객체 관리 (0) | 2017.03.13 |