HiDevelop

[Java]Interface의 특성 본문

Java

[Java]Interface의 특성

꽃달린감나무 2022. 2. 4. 21:17
728x90
  • 특성
    • 하나의 클래스가 여러 개의 인터페이스를 구현할 수 있다.
    • 타 언어의 다중상속과 같은 형식으로 사용할 수 있다.
      • interface LCD{}  
        interface TV extends LED {...}
        
        interface Computer{...}
        /*
         * 하나의 클래스가 여러 개의 인터페이스를 구현할 수 있다.
         */
        class IPTV implements TV, Computer ,LCD{...}
      • 하나의 클래스 당 한 개 클래스만 상속해야하는 것과는 다르게, 인터페이스는 하나의 클래스가 여러개의 인터페이스를 구현할 수 있다. Java는 다중상속을 지원하지 않기 때문에 이러한 특성을 타 언어의 다중상속과 같은 형식으로도 사용할 수 있다.
      • Java가 다중상속을 지원하지 않는 이유
      • Son은 간접적으로 GrandFather을 2번 상속하기 때문에, 호출할 메소드의 선택이 애매해지기 때문이다. 타 언어는 이러한 문제를 해결하기 위해 문법을 정해놓았지만, Java의 경우 이러한 복잡한 문제가 일어나지 않게 하기위해 아예 다중상속을 지원하지 않는다.
    • 인터페이스간에도 상속이 가능하다
      • interface LED{}
        interface TV extends LED {...}
      • 인터페이스도 클래스와 마찬가리로 참조변수의 선언도 가능하고 메소드의 오버라이딩도 그대로 적용되므로 하나의 클래스처럼 상속에도 사용할 수 있습니다.
    • 인터페이스는 표시의 용도로 사용되기도 한다.
      • interface LCD{} //표시를 위해 존재하는 인터페이스 
        
        class IPTV implements LCD{...}
      • LCD 인터페이스는 몸체가 통통 빈 인터페이스로 "이 클래스가 LCD입니다."와 같이 약속의 표시처럼 사용되기도 합니다.
728x90

'Java' 카테고리의 다른 글

[Java] Local Class & Anonymous 클래스  (0) 2022.02.07
[Java] Inner && Outer Class  (0) 2022.02.06
[Java] abstract(추상) && Interface  (0) 2022.02.03
[Java] Object class와 final  (0) 2022.01.29
[Java] 상속의 이점  (0) 2022.01.24