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