class A {
int i = 10;
}
class B extends A {
int i = 20;
}
public class C extends B{
int i = 30;
public static void main(String[] args) {
C c = new C();
c.m1();
}
public void m1() {
System.out.println(i); // 30
System.out.println(super.i); // 20
}
}
我有一个 A 类,其中包含一个默认变量。我创建了一个子类 B ,它扩展了类 A ,还创建了一个子类 C ,它扩展了类 B 。< / p>
我想在子类 C m1()
方法中访问类 A 变量。有没有直接的方法来访问它?
答案 0 :(得分:6)
更改此行
System.out.println(super.i); // 20
到
System.out.println(((A)this).i);
答案 1 :(得分:1)
要使你的生活复杂化,试试这个:
public void m1() {
System.out.println(this.i);
C c = new C();
Class<? extends Object> cls = c.getClass().getSuperclass().getSuperclass();
Field[] fields = cls.getDeclaredFields();
for ( Field field : fields )
{
String in = field.getName();
int iv = field.get((Object)c);
System.out.println(iv);
}
}