public class T {
static class t1 {
public int i = 5;
public int printA() {
return i;
}
}
static class t2 extends t1 {
public int i = 100;
public int printB() {
return i;
}
public void printC() {
{
System.out.println(super.i);
}
}
}
public static void main(String... args) {
t1 t = new t1();
t2 tt = new t2();
tt.printC(); //5
System.out.println(tt.printB()); //100
System.out.println(t.printA()); //5
System.out.println(tt.printA()); //5 不明白这里为啥是5而不是100?
t1 ttt = (t1) tt;
System.out.println(ttt.printA());//5
}
}
public class T {
static class t1 {
public int i = 5;
public int printA() {
System.out.println("t1.printA()");
return i;
}
}
static class t2 extends t1 {
public int i = 100;
public int printB() {
System.out.println("t2.printA()");
return i;
}
public void printC() {
{
System.out.println(super.i);
}
}
}
public static void main(String... args) {
t1 t = new t1();
t2 tt = new t2();
tt.printC(); //
System.out.println(tt.printB()); //
System.out.println(t.printA()); //
System.out.println(tt.printA()); //
t1 ttt = (t1) tt;
System.out.println(ttt.printA());//
}
} 结果是这样的,现在能理解了吧?
5
t2.printA()
100
t1.printA()
5
t1.printA()
5
t1.printA()
5