Implementing an interface not working
本问题已经有最佳答案,请猛点这里访问。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | 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; } } |
我得到"试图分配较弱的特权"。
在
不能实现(或重写)方法并分配较弱的特权,因为这不允许多态性。
您必须制作
1 2 3 4 5 6 7 |
此外,内部常量应为
接口中的所有抽象、默认和静态方法都是隐式公共的,因此可以省略公共修饰符。来自http://docs.oracle.com/javase/tutorial/java/iandi/interfacedef.html
接口的方法是隐式公共的,但实现类方法不是