728x90
인터페이스간에도 상속이 가능
public interface 하위인터페이스 extends 상위인터페이스 1, 상위인터페이스 2 { ... }
- 클래스 : 단일상속, 인터페이스 : 다중상속
하위 인터페이스를 구현하는 클래스는 아래 추상 메소드를 모두 재정의해야 한다.
인터페이스 자동 타입 변환
- 해당 타입의 인터페이스에 선언된 메소드만 호출할 수 있다.
예제)
package sec06.exam01_interface_extends;
public interface InterfaceA
{
public void methodA(); //추상메소드
}
package sec06.exam01_interface_extends;
public interface InterfaceB
{
public void methodB(); //추상메소드
}
package sec06.exam01_interface_extends;
public interface InterfaceC extends InterfaceA, InterfaceB
{
public void methodC(); //추상메소드
//InterfaceC는 총 3개의 추상메소드를 가짐 (methodA(), methodB(), methodC())
}
package sec06.exam01_interface_extends;
public class ImplementationC implements InterfaceC
{
@Override
public void methodA()
{
System.out.println("ImplementationC - methodA() 실행");
}
@Override
public void methodB()
{
System.out.println("ImplementationC - methodB() 실행");
}
@Override
public void methodC()
{
System.out.println("ImplementationC - methodC() 실행");
}
}
package sec06.exam01_interface_extends;
public class Example
{
public static void main(String[] args)
{
ImplementationC impl = new ImplementationC(); //객체생성
InterfaceA ia = impl;
ia.methodA(); //methodA만 사용 가능 , InterfaceA에는 methodA만 있기 때문
System.out.println();
InterfaceB ib = impl;
ib.methodB(); //methodB만 사용 가능 , InterfaceB에는 methodB만 있기 때문
System.out.println();
InterfaceC ic = impl;
//3가지 메소드 모두 사용가능
ic.methodA();
ic.methodB();
ic.methodC();
System.out.println();
}
}
728x90
'프로그래밍 언어 > JAVA' 카테고리의 다른 글
[JAVA] 중첩 클래스와 중첩 인터페이스 - 중첩클래스(1) (0) | 2021.07.19 |
---|---|
[JAVA] 디폴트 메소드와 인터페이스 확장 (0) | 2021.07.15 |
[JAVA] 타입변환과 다형성(인터페이스) (0) | 2021.07.14 |
[JAVA] 인터페이스 사용 (0) | 2021.07.13 |
[JAVA] 인터페이스 구현 (2) (0) | 2021.07.13 |