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
有何区别?