[Java] 인터페이스에서의 default 메서드, static 메서드

CountryGirl·2023년 6월 12일
0

Java

목록 보기
15/18
post-thumbnail

📌 default 메서드

추상 메서드의 기본적인 구현을 제공하는 메서드이다.

  • 메서드 앞에 default 키워드를 붙이며 다른 추상 메서드와 달리 {} 안에 내용이 존재해야한다.
  • default 메서드의 접근 제어자는 public 이며 생략할 수 있다.

추상 메서드가 아니기 때문에 인터페이스의 구현체들에서 필수로 재정의할 필요는 없다.
👉 구현한 부분이 있기 때문에 추상 메서드가 아니다 !

public class Main implements A {

    @Override
    public void a() {
        System.out.println("A");
    }
    
    public static void main(String[] args) {
        Main main = new Main();
        main.a();

        main.aa(); 				// default method
    }
}

interface A {
    void a();
    default void aa() {			// default method
        System.out.println("AA");
    }
}

재정의 없이 바로 사용할 수 있다.


📌 static 메서드

인터페이스에서 static 메서드를 선언할 수 있다.
static 의 특성 그래돌 인터페이스의 static 메서드 또한 객체 없이 바로 호출 가능하다.

public class Main implements A {

    @Override
    public void a() {
        System.out.println("A");
    }

    public static void main(String[] args) {
        Main main = new Main();
        main.a();

        A.aa();			// static method -> 바로 접근
    }
}

interface A {
    void a();
    static void aa() {
        System.out.println("static method");
    }
}
profile
💻🌾시골소녀의 엉망징창 개발 성장일지🌾💻 (2023.05.23 ~)

0개의 댓글

관련 채용 정보