자바

JAVA 자바 인터페이스 상속

알통몬_ 2017. 3. 13. 10:18
반응형

인터페이스 상속

 인터페이스도 다른 인터페이스를 상속할 수 있습니다. 또한 클래스와는 다르게 다중상속을 지원합니다. 

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();

}

}

반응형