반응형
추상클래스를 고도화시킨 문법이며, 반드시 추상메소드와 상수만 선언해야한다.
다른 클래스에서 인터페이스를 지정받을 때에는 implements를 사용한다.
지정받은 클래스는 인터페이스가 갖고있는 추상 메소드들을 반드시 재정의 해야한다.
interface 인터페이스명{
상수
추상메소드
default 메소드
}
jdk8 버전 이후부터는 인터페이스에 default 메소드를 선언할 수 있다.
따라서 사실상의 다중상속을 지원하게 된다.
인터페이스 끼리나 다른 클래스와의 메소드 모호성이 발생한다면(이름 중복)
지정, 상속받은 클래스에서 명시적으로 작성(재정의)해 주어 모호성을 해결해줘야한다.
public class D extends C implements A, B {
@Override
public void f() {
A.super.f(); // A인터페이스의 f()사용
B.super.f(); // B인터페이스의 f()사용
super.f(); // C클래스의 f()사용
}
}
반응형
'Back-End > JAVA' 카테고리의 다른 글
[Java] 익명 클래스(anonymous inner class) (0) | 2021.05.28 |
---|---|
[Java] 내부 클래스(inner class) (0) | 2021.05.28 |
[Java] 추상 클래스(abstract) (0) | 2021.05.27 |
[Java] 접근 권한 제어자(접근제어자) (0) | 2021.05.27 |
[Java] Casting(Upcasting, Downcasting), instanceof (0) | 2021.05.27 |