Java의 인터페이스는 클래스와 비슷하지만 인터페이스의 본문에는 추상 메서드 와
final
필드 (상수) 만 포함될 수 있습니다 .
최근에 다음과 같은 질문을 보았습니다.
interface AnInterface {
public default void myMethod() {
System.out.println("D");
}
}
인터페이스 정의에 따라 추상 메서드 만 허용됩니다. 위 코드를 컴파일 할 수있는 이유는 무엇입니까? default
키워드 는 무엇입니까 ?
반면에 아래 코드를 작성하려고 할 때 modifier default not allowed here
default class MyClass{
}
대신에
class MyClass {
}
누구든지 default
키워드 의 목적을 말해 줄 수 있습니까 ? 인터페이스 내에서만 허용됩니까? default
(액세스 수정 자 없음) 과 어떻게 다른 가요?