Java - interface - default method
최대 1 분 소요
Java - interface - default method
- interface에서는 method를 선언만 할 수 있고 정의할 수는 없지만,
default
를 사용하면 정의할 수도 있습니다.
// Interface를 정의하고,
// default method도 선언 및 정의합니다.
public interface InterfaceWithDefault {
default void printDefault() {
System.out.println("This is InterfaceWithDefault");
}
}
// 위 Interface의 구현체인 InterfaceWithDefaultImpl에서
// constructor를 제외한 어떤 method도 만들어주지 않았죠.
public class InterfaceWithDefaultImpl implements InterfaceWithDefault{
public InterfaceWithDefaultImpl() {
}
}
// 하지만, main class에서
// 다음과 같이 default method를 그대로 사용할 수 있습니다.
class Main {
public static void main(String[] args) throws Exception {
InterfaceWithDefault a = new InterfaceWithDefaultImpl();
// default method
a.printDefault();
}
}
Wrap-up
- interface의 모든 구현체에 동일하게 포함되는 method임에도, interface에서는 method를 정의할 수 없기 때문에 매번 각 구현체에서 모두 새롭게 작성을 해줘야 하는 경우들이 있습니다. 이럴때면 같은 코드가 여러 번 중복되는 셈이죠. 따라서, 그런 경우에 해당 method를 위의 interface의 default method로 정의함으로써, 코드가 효율적으로 변하게 되죠.
댓글남기기