如下代码的运行结果是什么?为什么? interface A{ int x = 0; } class B{ int x =1; } class C extends B implements A { public void pX(){ System.out.println(x); //super.x A.x } public static void main(String[] args) { new C().pX(); } }
时间: 2023-11-22 11:52:30 浏览: 220
class转成java源码-compilib:在运行时和内存中将Java源代码编译为Class对象
代码的运行结果是 1,因为类 C 继承了类 B,并且实现了接口 A。由于类 B 中定义了一个实例变量 x,因此类 C 也具有这个实例变量。在类 C 中调用 pX() 方法时,会输出类 B 中的实例变量 x 的值,即 1。在类 C 中也可以用 super.x 来引用类 B 中的实例变量 x,而接口 A 中的变量 x 在这里不会被访问到。因为接口中定义的变量都是 public static final 的,它们会被类和接口的实现共享,并且不能被子类或实现类覆盖。
阅读全文