java - Java 9 接口:为什么将默认修饰符转换为公共修饰符
问题描述
我的问题是关于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();
}
解决方案
推荐阅读
- python-3.x - 转换二进制
十六进制字节到十进制值列表 - python - 具有多标签和长时间窗口的 LSTM 回归
- unity3d - 如何在统一 2d 中重新使用绑定动画进行左右移动?
- javascript - Javascript 闭包是保留整个父词法环境还是仅保留闭包引用的值的子集?
- python - 如何用 Pandas 对另外两列中的唯一值求和?
- audio - 与“真实”完全不同的合成和弦声音
- java - 如何在 MySQL 中仅更改一个字段值?
- azure-container-registry - 是否可以基于 {repository:tag} 为 Azure 容器注册表创建访问控制?
- sql - 获取覆盖组的 N 条记录的客户数量
- python - 创建 sns.pointplot 时仅从 datetimeindex 提取小时:分钟到 x 轴