Programming/Java
Default Method in Interface
사랑우주인
2021. 11. 22. 16:59
자바8에서는 메소드 구현을 포함하는 인터페이스를 정의할 수 있다.
default method
인터페이스의 기본 구현을 제공한다.
기존 인터페이스를 구현한 클래스는 자동을 인터페이스에 추가된 디폴트 메소드를 상속 받게 된다.
default 메서드가 나온 이유
- 인터페이스에 새로운 메서드(추상 메서드)를 추가하기 어려움 (인터페이스 : 추상 메서드 집합)
- 인터페이스의 변경의 전파를 최소화할 수 있다.
interface Repairable{
boolean isfinished(); // 추상 메서드
}
interface Repairable{
default boolean isfinished(){}; // Default 메서드(추상 메서드 X), 구현도 가능함
}
디폴트 메서드를 이용하면 인터페이스의 기본 구현을 그대로 상속하므로 인터페이스에 자유롭게 새로운 메서드를 추가할 수 있게된다.
인터페이스에 새로운 메소드를 추가하려면 인터페이스를 구현하는 기존의 모든 클래스에 새로운 메소드를 추가, 구현해야 한다. 기존 클래스를 관리할 수 있는 상황이면 쉽게 해결 가능하지만, 인터페이스가 오픈되어 대중에 공개되었을 때는 애매한 상황이 놓여진다.