Java의 인터페이스는 클래스와 유사하지만 최종적이고 정적인 추상 메서드와 필드만 포함합니다.
- 메소드 프로토타입의 사양입니다. 프로그래머를 안내해야 할 때마다 또는 유형의 메소드와 필드가 어떻게 되어야 하는지를 지정하는 계약을 맺을 때마다 인터페이스를 정의할 수 있습니다.
- 클래스가 특정 사양을 따르도록 하려면 필수 인터페이스를 구현하고 해당 인터페이스의 모든 추상 메서드에 대한 본문을 제공해야 합니다.
- 인터페이스의 모든 추상 메소드 구현을 제공하지 않으면(귀하가 구현) 컴파일 시간 오류가 생성됩니다.
인터페이스에 새로운 메소드가 추가된다면?
특정 인터페이스를 사용 중이고 해당 인터페이스의 모든 추상 메서드를 구현했으며 나중에 새 메서드가 추가되었다고 가정합니다. 그러면 이 인터페이스를 사용하는 모든 클래스는 각각에 새로 추가된 메소드를 구현하지 않으면 작동하지 않습니다.
Java8에서 이 문제를 해결하기 위해 기본 메소드가 도입되었습니다.
기본 방법
기본 방법은 방어자 방법 또는 가상 확장 방법이라고도 합니다. default를 사용하여 기본 메소드를 정의할 수 있습니다. 키워드 -
default void display() { System.out.println("This is a default method"); }
인터페이스의 특정 메서드에 대한 기본 구현을 한 번 작성합니다. 이 인터페이스를 이미 사용(구현)하고 있는 클래스에서 구현할 필요가 없습니다.
다음 Java 예제는 Java의 기본 메소드 사용법을 보여줍니다.
예
interface sampleInterface{ public void demo(); default void display() { System.out.println("This is a default method"); } } public class DefaultMethodExample implements sampleInterface{ public void demo() { System.out.println("This is the implementation of the demo method"); } public static void main(String args[]) { DefaultMethodExample obj = new DefaultMethodExample(); obj.demo(); obj.display(); } }
출력
This is the implementation of the demo method This is a default method