디폴트 메서드와 static 메서드

song yuheon·2023년 8월 27일
0

Java

목록 보기
19/46
post-thumbnail

2.1. Default method:

  • 디폴트 메서드는 Java 8에서 도입되었으며, 인터페이스 내에서 메서드의 기본 구현을 제공하는 방식이다.

특징:
1. default 키워드를 사용하여 정의한다.
2. 인터페이스를 구현한 클래스는 디폴트 메서드를 오버라이드 할 수 있으나, 필수는 아니다.

이유:

  • 인터페이스에 새로운 메서드를 추가할 경우, 그 인터페이스를 이미 구현한 클래스는 새로 추가된 메서드를 구현해야 하는 문제가 생긴다. 디폴트 메서드를 사용하면 이런 문제를 해결하고, 기존의 코드를 변경하지 않으면서도 인터페이스를 안전하게 확장할 수 있다.
  • 다중 상속과 유사한 기능을 제공한다. 여러 인터페이스에 정의된 디폴트 메서드들을 하나의 클래스에서 모두 사용할 수 있다.
interface A {
    void a();
    default void abc() {
        System.out.println("default");
    }
}

2.2. Static method:

  • 인터페이스의 static 메서드는 인터페이스 이름으로 호출되며, 인스턴스에 종속되지 않는다.

특징:
1. static 키워드를 사용하여 정의한다.
2. 인터페이스 구현 클래스나 인스턴스에서 오버라이드나 호출이 불가능하다.
3. 주로 인터페이스와 관련된 유틸리티나 헬퍼 메서드를 제공할 때 사용된다.

interface A {
    void a();
    static void ab() {
        System.out.println("static method");
    }
}

이 두 메서드의 도입으로 인터페이스의 활용 범위가 확대되었으며, 기존 코드의 안정성을 유지하면서도 새로운 기능을 추가할 수 있는 유연성을 얻었다.

profile
backend_Devloper

0개의 댓글