본문 바로가기

Java 공부/신용권의 이것이 자바다

인터페이스 Interface 상속

반응형

인터페이스 간에도 상속이 가능하다.
클래스( class)는 상속을 하나만 할 수 있는데, 인터페이스는 다중 상속을 할 수 있다.
그것을 작성하는 코드는 다음과 같다.

public interface 하위 인터페이스 extends 상위인터페이스1, 상위인터페이스2 {...}

그런데 하위인터페이스를 구현하는 클래스는 아래 추상 메소드를 모두 재정의해야 한다.
예를 들어, 하위인터페이스의 추상 메소드와 상위인터페이스1의 추상 메소드, 상위인터페이스2의 추상메소드가 존재한다고 한다면, 이것들을 모두 재정의 해 줘야 한다는 것이다.
그 코드는 다음과 같이 작성한다.
하위인터페이스 변수 = new 구현클래스(...);
상위인터페이스1 변수 = new 구현클래스(...);
상위인터페이스2 변수 = new 구현클래스(...);
다음 코드를 보자!

InterfaceA에서는 메소드A를 선언했다.

InterfaceB에서는 메소드B만 선언했다.

InterfaceC에서는 InterfaceA와 InterfaceB 를 상속받았다.
그러고 나서 메소드C를 선언했다.

이제, 각각의 메소드는 어느 Inerface를 참조해서 실행하는지 살펴보기 위해, 위와 같이 코드를 작성한다.

그러고 나서 위와 같이 실행 클래스를 작성했다.
인터페이스A와 인터페이스B를 참조했을 경우, 각각 메소드A와 메소드B만 호출할 수 있다.
그러나 인터페이스A와 인터페이스B를 상속받은 인터페이스C는 자기자신의 구현메소드C와 메소드A, 메소드B를 모두 호출할 수 있다.
콘솔창에 뿌려진 결과를 보면, 각각의 메소드가 무엇을 참조했는지 확인할 수 있을 것이다.

반응형