0%

interface/DefaultStatic

Interface 디폴트 메서드와 static메서드

  • 인터페이스에 디폴트메서드, static메서드 추가 기능(JDK1.8부터)

  • 인터페이스에 새로운 메서드(추상 메서드)를 추가하기 어려움

    • 해결책 => 디폴트메서드(default method)
  • 디폴트메서드는 인스턴스 메서드(인터페이스 원칙 위반)

  • interface MyInterface {
      void method();
      void newMethod(); // 추상메서드
    }
    
    

interface MyInterface {
void method();
default void newMethod() {}
}


- 디폴트 메서드가 기존의 메서드와 출돌할 때의 해결책

  1. 여러 인터페이스의 디폴트 메서드간의 충돌
  2. 디폴트 메서드와 조상 클래스의 메서드간의 충돌

  - 해결: 그냥 직접 오버라이딩하면 해결됨