07
14
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
COMMENT