새소식

반응형
Java/Spring

Interface 의 default 키워드(Default Methods)

  • -
반응형

Java8 이하의 버전에서 Interface 는 추상메서드만 멤버로 가질 수 있었다.

Java8 이후 부터는 Interface 에 default 키워드를 통해 추상메서드가 아닌

구현된 메서드인 Default Method를 가질 수 있다.

즉, 메서드에 내용을 추가할 수 있다.

 

아래는 일반적인 Interface 및 추상메서드이다.

Animal Interface
public interface Animal {
    void tiger(int a);
}

위처럼 기본적인 Interface 형식은 추상메서드만 존재했지만 Java8 에서 default 키워드를 통해

메서드안에 내용을 추가할 수 있다.

 

public interface Animal {
    void tiger(int a);
    default Integer cat(int a) {
        System.out.println("나는 고양이");
        return a * 2;
    }
}

위 내용과 같이 default 키워드를 사용해 Default Method 를 생성했으며, 내용도 추가할 수 있다.

 

일반적인 Interface 를 모든 추상메서드를 Override 해야하지만 default 키워드를 통해

생성한 Default Method는 구현했기 때문에 Override 하지 않아도 컴파일 에러가 나지 않는다.

 

아래는 Animal Interface 를 구현한 Human 클래스이다.

위와 같이 Interface를 구현했지만 Override 를 하지 않아 Human 클래스에서 에러가 난다.

에러 내용을 확인해보니 Animal Interface 의 tiger 메서드를 Override 하지 않아 나는 에러이다.

 

 

Add unimplemented methods 를 통해 구현하지 않은 메서드를 구현해보면 아래와 같다.

일반 추상메서드인 tiger만 구현하고 Default Method 인 cat 메서드는 구현하지 않아도

컴파일 에러가 나지 않는다.

 

반응형
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.