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
(アクセス修飾子なし)とどう違うのですか?