有没有办法在另一个类中使用子类的对象访问由子类成员隐藏的超类成员。
public class A {
int i, j;
A() {
i = 5;
j = 5;
}
}
public class B extends A {
int i;
B() {
super();
i = 10;
}
}
class TestEx {
public static void main(String[] args) {
B obj = new B();
// i from B
System.out.println(obj.i);
}
}
我需要在使用obj的testEx中从A访问 在非静态内部类的情况下存在相同的疑问..无论如何在InnerClass中的OuterClass的acess变量与InnerClass中的一个相同的名称
答案 0 :(得分:5)
从类((A)this).i
的实例方法中简单到B
,或者更简单,
A obj = new B();
System.out.println(obj.i);
为什么呢?因为除了实例方法之外的任何内容都不受动态绑定和覆盖的影响。类B
具有其祖先的所有实例变量。
答案 1 :(得分:2)
public static void main(String[] args){
B obj=new B();
//i from B
System.out.println(((A)obj).i);
}
答案 2 :(得分:0)