java8 default method

gryoh·2022년 5월 12일
0

원래 인터페이스는 메소드 정의만 할 수 있고 구현은 할 수 없지만,
java8부터 인터페이스에 디폴트 메소드(Default methods) 를 붙일 수 있게 되었다
따라서 구현 내용도 인터페이스에 포함시킬 수 있다

아래는 사용예시이다
(해보니까 interface에서 default method 사용 시 오버라이딩도 가능하다)

+추가로 List<> 도 인터페이스이고 그 안에 보면 default 메소드를 사용한 부분을 볼 수 있다


public interface Fruit {
    public String getTaste();

    default boolean isEatSkin(){
        return false;
    }
}
public class AppleDto implements Fruit {
    @Override
    public String getTaste() {
        return "새콤달콤";
    }
}
public class TomatoDto implements Fruit {
    @Override
    public String getTaste() {
        return "감칠맛";
    }

    @Override
    public boolean isEatSkin() {
        return true;
    }
}
public class MainClass {
    public static void main(String[] args) {
        AppleDto apple = new AppleDto();
        TomatoDto tomato = new TomatoDto();

        System.out.println(apple.getTaste() + " , " + apple.isEatSkin());
        System.out.println(tomato.getTaste() + " , " + tomato.isEatSkin());
    }
}
새콤달콤 , false
감칠맛 , true

0개의 댓글