Back-End/JAVA

[Java] 인터페이스(interface)

챌링킴 2021. 5. 27. 20:10
반응형

추상클래스를 고도화시킨 문법이며, 반드시 추상메소드와 상수만 선언해야한다.

다른 클래스에서 인터페이스를 지정받을 때에는 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()사용
	}

}
반응형