java - 为什么方法必须公开?

标签 java oop interface

考虑以下类:

class A {
    void print() {
        System.out.println("A");
    }
}

class B extends A implements C {
}

public interface C {
    void print();

}

我收到这个错误:

The inherited method A.print() cannot hide the public abstract method in C

现在,我知道 print() 必须公开才能消除编译错误,但这背后的原因是什么?

最佳答案

答案很简单,接口(interface)方法总是公开的,或者只是使用组合而不是继承。另请注意,在覆盖方法时,您无法缩小方法的访问级别。

Oracle 文档说:

The access modifier public (§6.6) pertains to every kind of interface declaration.

关于java - 为什么方法必须公开?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24580541/

相关文章:

java - 使用 Keycloak Java 客户端创建用户时遇到问题

eclipse - Jboss 7 和 eclipse indigo 插件在启动服务器时出现错误?

c - memcpy 类似继承的结构 - 安全吗?

oop - 与组合相关的松散耦合

java - 如何迭代 ArrayList<Class<?扩展接口(interface)>>

JAVA:无法在循环中返回响应

java - 正则表达式查找两个选项卡之间的文本(java pattens)

php - 如何通过 Controller 调用模型中的方法? Zend 框架

java - java中的Interface.class是什么意思?

java - 什么是已弃用的注释目标 - 实现、接口(interface)或两者?