Oracle의 Javadocs에 따르면 -
기본 메소드를 사용하면 라이브러리의 인터페이스에 새로운 기능을 추가하고 해당 인터페이스의 이전 버전용으로 작성된 코드와 바이너리 호환성을 보장할 수 있습니다.
정적 메서드는 개체가 아니라 정의된 클래스와 연결된 메서드입니다. 클래스의 모든 인스턴스는 정적 메서드를 공유합니다.
인터페이스의 정적 메서드는 인터페이스 클래스의 일부로 구현하거나 재정의할 수 없지만 클래스는 기본 메서드를 재정의할 수 있습니다.
Sr. 아니요. | 키 | 정적 인터페이스 방법 | 기본 방법 |
---|---|---|---|
1 | 기본 | 인터페이스에만 속하는 정적 메서드입니다. 인터페이스 자체에서 이 메서드의 구현을 작성할 수 있습니다. | 기본 키워드가 있는 메서드이며 클래스가 이 메서드를 재정의할 수 있습니다. |
2 | 메소드 호출 | 정적 메서드는 클래스가 아닌 인터페이스 클래스에서만 호출할 수 있습니다. | 인터페이스뿐만 아니라 클래스에서도 호출할 수 있습니다. |
3 | 메서드 이름 | 인터페이스 및 구현 클래스, 둘 다 서로 재정의하지 않고 동일한 이름의 정적 메서드를 가질 수 있습니다. | 클래스를 구현할 때 기본 메서드를 재정의할 수 있습니다. |
4. | 사용 사례 | 유틸리티 메소드로 사용할 수 있습니다. | 모든 구현 클래스에서 공통 기능을 제공하는 데 사용할 수 있습니다. |
인터페이스의 기본 및 정적 메소드의 예
public interface DefaultStaticExampleInterface { default void show() { System.out.println("In Java 8- default method - DefaultStaticExampleInterface"); } static void display() { System.out.println("In DefaultStaticExampleInterface I"); } } public class DefaultStaticExampleClass implements DefaultStaticExampleInterface { } public class Main { static void main(String args[]) { // Call interface static method on Interface DefaultStaticExampleInterface.display(); DefaultStaticExampleClass defaultStaticExampleClass = new DefaultStaticExampleClass(); // Call default method on Class defaultStaticExampleClass.show(); } }