java - 实现接口(interface)不起作用

标签 java

public class TestImpl {
    public static void main(String[] args) {
        HelloImpl h1 = new HelloImpl(), h2 = h1;
        h1.message = "holla";
        System.out.println(h2.sayHello());
    }
}

interface Hello {
    String sayHello();
}

class HelloImpl implements Hello {
    static String message = "Hello";

    String sayHello() {
        return message;
    }
}

我得到“尝试分配较弱的权限。”

最佳答案

接口(interface)中,默认情况下所有成员都是公共(public)

您不能实现(或重写)方法并分配较弱的权限,因为这不允许多态性。

您必须将 sayHello() 设置为 public

class HelloImpl implements Hello {
    private static final String message = "Hello";

    public String sayHello() {
        return message;
    }
}

此外,内部常量应该是private final

关于java - 实现接口(interface)不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24273196/

相关文章:

Java构造函数问题

java - WebDriver 使用隐式等待获取加载元素的时间

java - 在哪里可以找到与 Java 1.6 兼容的 FindBugs Eclipse 插件

java - 'synchronized' 会影响流的内存占用吗?

java - 使用 Java 和 JXL API 编辑 Excel 电子表格

java - 在不同的包中为同一类使用两个 CDI 生成器 (Intellij)

java - Corda RPC : A hot observable returned from an RPC was never subscribed to

java.sql.SQLIntegrityConstraintViolationException Spring 启动

java - 使用 LdapTemplate 时 LDAP 连接不会关闭

java - 数组列表整数不起作用