why implementation is allowed with in interface
本问题已经有最佳答案,请猛点这里访问。
Possible Duplicate:
Why no static methods in Interfaces, but static fields and inner classes OK?
我想知道为什么接口不允许静态块,但它们允许声明静态变量。如果我想在某些逻辑上初始化一个静态变量怎么办?
编辑:之前我没有以更好的形式发布我的查询,但这是我的带有示例代码的查询。请看一下。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | interface A { static class XYZ { public static void methodA() { // some implementation System.out.println("methodA"); } public static void methodB() { // some more implementation System.out.println("methodB"); } } void methodC(); } public class ABC implements A { public static void main(String[] args) { A.XYZ.methodA(); } @Override public void methodC() { // TODO Auto-generated method stub } } |
因为接口的目的是提供一种机制,接口的用户/实现者可以根据需要实现属性(方法)。但是如果允许我在接口中添加实现,那么一些接口的目的是如何被挫败的,请告诉我为什么在接口中允许这个实现,一定有一些事情是为什么,那是什么事实,这就是我想要知道的。
他们设计的接口不允许实现;静态块将构成一个实现,因此不允许实现。