자바의 정석 - 디폴트 메서드와 static메서드

Yohan·2024년 1월 29일
0
  • 인터페이스에 디폴트 메서드와 static메서드 추가 가능 (JDK 1.8 ~)
  • 인터페이스 : 추상 메서드의 집합
  • 인터페이스에 새로운 메서드(추상 메서드)를 추가하기 어려움
    • 추가한 모든 곳에 추상 메서드를 구현해야하기 때문에
      -> 해결책 : 디폴트 메서드(default method)
  • 디폴트 메서드는 인스턴스 메서드(인터페이스 원칙 위반)
interface MyInterface {
	void method();
    void newMethod(); // 추상 메서드
}
interface MyInterface {
	void method();
    default void newMethod() {} // 디폴트 메서드
}
  • 디폴트 메서드가 기존의 메서드와 충돌할 때의 해결책
  1. 여러 인터페이스의 디폴트 메서드 간의 충돌
    -> 인터페이스를 구현한 클래스에서 디폴트 메서드를 오버라이딩한다.
  2. 디폴트 메서드와 조상 클래스의 메서드 간의 충돌
    -> 조상 클래스의 메서드가 상속되고, 디폴트 메서드는 무시된다
  • 해결책을 모르겠으면 그냥 직접 오버라이딩하면 해결 !
profile
백엔드 개발자

0개의 댓글