Dev Story/Java
인터페이스에서 메소드 구현이 가능하다?
Dynatic
2015. 3. 7. 13:18
자바 1.8버전 부터는 default라는 키워드로 인터페이스에서 메소드의 구현이 가능하다.
이 때 궁금한 점은 원래 클래스는 다중 상속을 구현시 다이아몬드 패턴의 문제가 생겨 다중 상속 자체를 금지했는데, 인터페이스가 이를 허용하면 이 문제를 해결한건지 궁금하다.
일단 위의 코드처럼 default 키워드를 사용하면 함수 구현이 가능.
궁금했던 다이아몬드 패턴은 컴파일 에러로 막아뒀다.
default 말고도 하나 방법이 더 있다. static 키워드이다.
static으로 함수를 선언하면 인터페이스 내부에서 함수 구현이 가능하다.
하지만 이 경우 인터페이스 객체를 생성해도 사용이 불가능하고 전역 호출로만 사용이 가능하다.