0

以下是我尝试运行的代码,输出为Good. 那么,我们可以使用一个类实现的接口变量吗?

interface IDummyInterface {
    public String TYPE = "Good";
}

class Test implements IDummyInterface {

}

public class MyApplication {
    public static void main(String[] args) {
        System.out.println(Test.TYPE);
    }
}
4

3 回答 3

6

任何实现接口的类,以及任何扩展实现该接口的类的类,都会继承所有这些接口变量。无论您如何在接口中声明变量,所有接口变量都是public static final,这就是为什么您可以仅使用类名而不是类的实例来访问它们的原因。

于 2013-08-30T05:46:21.240 回答
2

Test实现IDummyInterface.so 的所有变量IDummyInterface都被继承

于 2013-08-30T05:47:00.433 回答
2

变量实际上是static final. 并且由于它是static,它遵循与类中声明的所有静态变量相同的规则,这些静态变量可以通过从它继承的任何其他类进行访问。在这方面,接口的行为类似于类。

class StaticTestParent { public static final int VALUE = 1; }
class StaticTestChild extends StaticTestParent { }

static {
  System.out.println(StaticTestChild.VALUE);
}
于 2013-08-30T05:51:04.950 回答