为什么在接口中允许实现

时间:2013-01-12 11:24:42

标签: java interface static inner-classes

  

可能重复:
  Why no static methods in Interfaces, but static fields and inner classes OK?

我想知道为什么接口不允许静态块,但它们允许声明静态变量。 如果我想在某些逻辑上初始化静态变量该怎么办。

编辑:之前我没有以更好的形式发布我的查询,但这是我的查询示例代码。请调查一下。

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

    }
}

由于接口的目的是提供一种机制,其中接口的用户/实现者可以根据他们的需要实现属性(方法)。 但是,如果我被允许在接口中添加实现然后一些如何打败接口的目的,请让我明白为什么在接口中允许这种实现,必须有一些东西是为什么,这是什么事实,这就是我想知道

1 个答案:

答案 0 :(得分:2)

他们设计的接口不允许实现;静态块将构成一个实现,因此不允许。