继承自父类的变量与实现接口中的变量重名
j2se吧
全部回复
仅看楼主
level 1
umma_summer 楼主
各位,请教了:类A中有一个变量:a接口B中也有一个变量:a类C继承自类A,实现接口B这时候要分别输出两个不同的变量a,应该怎么办??class A{ int a = 1;}interface B{ int a = 0;}class C extends A implements B{}class TestDriver{ public static void main(String[] args) { C c = new C(); System.out.println(c.a); }}这样的程序编译的时候会报错:TestDriver.java:6: 对 a 的引用不明确,A 中的 变量 a 和 C 中的 变量 a 都匹配 System.out.println(b.a); ^那我应该怎么样吧父类中的变量a和接口中的变量a区别开啊??谢谢了
2008年11月24日 13点11分 1
level 0
用super来区分A的变量a
2009年01月01日 16点01分 2
level 1
你可以这样:
public class Test {
     public static void main(String[] args) {
          C c = new C();
          //输出A中a的值1
           System.out.println(((A)c).a);
          //输出B中a的值0
          System.out.println(((B)c).a);
     }
}
2009年12月22日 04点12分 3
1