我的问题是关于interface
. 我创建了一个接口并定义了四个方法:第一个方法是一个private
方法;二是default
方法;三是static
方法;第四是abstract
方法。
编译此接口并检查其配置文件后:default
方法被转换为public
方法,并且static
和abstract
方法都有一个前置public
修饰符。为什么是这样?
代码:
interface InterfaceProfile {
private void privateM() { //this method is hidden
System.out.println("private Method");
}
default void defaultM() {
System.out.println("Default Method");
}
static void staticM() {
System.out.println("Static Method");
}
void doStuff(); //by default adds the public modifier
}
接口配置文件类
D:\Linux\IDE\Workspace\OCA-Wrokspace\Ocaexam\src>javap mods\com\doubt\session\InterfaceProfile.class
Compiled from "InterfaceProfile.java"
interface com.doubt.session.InterfaceProfile {
public void defaultM();
public static void staticM();
public abstract void doStuff();
}