java - ClassOne 中的 doSomething() 无法实现 InterfaceOne 中的 doSomething(),尝试分配较弱的访问权限,已公开

标签 java interface subclass superclass

SubclassOne延伸ClassOne并实现InterfaceOne ,两者都有 void doSomething(){}方法。但是,编译器显示错误消息,

doSomething() in ClassOne can't implement doSomething() in InterfaceOne, attempt to assign weaker access privilege, was public

有人可以告诉我为什么编译器会显示这个特定的消息吗?其背后的原因是什么?

public class ClassOne {
    void doSomething(){
        System.out.println("do something from InterfaceMethod class");
    }
}


public interface InterfaceOne {
    default void doSomething(){
        System.out.println("do something from InterfaceOne");
    }
}


public class SubclassOne extends ClassOne implements InterfaceOne{
    public static void main(String[] args) {

    }
}

最佳答案

在这种情况下,您的SubclassOne将提供一个同时满足父类(super class)和接口(interface)的实现。因此,由于两个方法的访问修饰符存在冲突,因此您会收到这样的错误消息。

(您的 ClassOne 的访问修饰符不是 public。它是包可见的。)

关于java - ClassOne 中的 doSomething() 无法实现 InterfaceOne 中的 doSomething(),尝试分配较弱的访问权限,已公开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36527651/

相关文章:

java - Maven 对项目级自置 jar 的依赖

java - 是否存在可以透明地构建请求但缺少的本地 Artifact 的 Maven 存储库?

ios - UIButton 的子类不工作

interface - 在用户空间中获取 Linux 接口(interface)流量 64 位统计信息

python - Tensorflow:使用不同的 "call"函数创建 LSTM 单元的自定义子类

java - 将instanceof 与其他继承数据一起使用时的混淆

java - Glassfish v3 Prelude 与用于 Web 应用程序的 Springsource dm 服务器的优点/缺点?

java - While 循环无限期地运行并且没有给出正确的输出

interface - 在 Typescript 中如何修复无法设置未定义的属性 'first'

java接口(interface)和新类