15. 여러 인터페이스 구현하기, 인터페이스의 상속

인터페이스의 다양한 형태의 상속 + 상속지식UP 정리

다중 인터페이스를 구현하는 클레스

형태 :

사용예시: 

  • 기능을 풍부하게 만들기 위해서 프레임워크를 사용하다 보면 프레임워크 내의 인터페이스를 가지고 와서 구현하기 때문에. 다중 상속을 자주 사용하게 됩니다.
    • 기본적으로 인터페이스에는 구현 코드가 없기 때문에. 여러개의 인터페이스를 상속할수 있습니다.
  • 그렇다면 인터페이스가 아닌 일반 클레스는 왜 다중상속을 하지 못하게 했을까요?

다이아몬드 문제(Diamond Problem) : 다중상속을 할수 없는 이유.

기존의 자바는 기능을 풍부하게 만드는것보다 안전성을 높이는 방향으로 발전해 왔다면

최근에는 기능을 풍부하게 만드는 방향으로도 발전하고 있습니다.

(내 생각) 다양한 JVM에서 동일한 바이너리로 돌아가게 하기 위한 호환성이 자바의 지향점이였기 떄문이였을수도 있겠네요.

(내 착각) 인터페이스의 default 메소드는 재정의가 가능해서 다이아몬드 문제를 일으킬수 있을것 같은데. 인터페이스가 인터페이스를 상속받을수 있을까?

  • implement한 일반 클레스에서는 재정의할수 있지만. interface끼리는 extends밖에 할수 없으며 extends한 클레스에서는 default메소드를 재정의할수 없네요.

인터페이스의 상속

    1. 인터페이스들을 상속 하는 클레스subClass 에서 다중구현 방법 : implements classA, classB
      • interfaceA와 interfaceB에 같이 있는 default method를 subClass에서 사용하는 방법.
        • interFaceA(선택 하려는 인터페이스).super(자신의 클레스의).method();
      package TEST1;
      
      public class Do {
      	public static void main(String[] args) {
      		sub_A S = new sub_A();
      		S.method();
      		S.method_A();
      		S.method_B();
      	}
      }
      
      package TEST1;
      
      public interface interface_A {
      	default void method() {
      		 System.out.println("interface_A");
      	 }
      	void method_A();
      }
      
      package TEST1;
      
      public interface interface_B {
      	default void method() {
      		System.out.println("interface_B");
      	 }
      	void method_B();
      }
      

전문 용어


 

에러 메세지


학습 시간


 

캠 스터디

 


공부 모임

1) 카카오톡 오픈 채팅방

  - 모르는것을 질문하거나

  - 이해가 가지 않는 부분을 다른 분들의 블로그에서 참고하기 용도

2) 구루미 온라인 독서실

  - 학습 시간을 관리 하거나 경쟁 하는 용도 

 

온라인 강의 주소

https://bit.ly/37BpXiC

 

패스트캠퍼스 [직장인 실무교육]

프로그래밍, 영상편집, UX/UI, 마케팅, 데이터 분석, 엑셀강의, The RED, 국비지원, 기업교육, 서비스 제공.

fastcampus.co.kr

 

본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.

 

 

+ Recent posts