以下是我尝试运行的代码,输出为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);
}
}
答案 0 :(得分:6)
任何实现接口的类,以及任何扩展实现该接口的类的类都会继承所有接口变量。无论你如何在接口中声明变量,所有接口变量都是public static final
,这就是为什么你只能使用类名而不是类的实例来访问它们。
答案 1 :(得分:2)
Test
实现了IDummyInterface
。所以IDummyInterface
的所有变量都是继承的
答案 2 :(得分:2)
变量实际上是static final
。因为它是static
,所以它遵循与在类中声明的所有静态变量相同的规则,这些静态变量可以通过从其继承的任何其他类访问。在这方面,接口的行为类似于类。
class StaticTestParent { public static final int VALUE = 1; }
class StaticTestChild extends StaticTestParent { }
static {
System.out.println(StaticTestChild.VALUE);
}