class t2 {
int i = 10;
}public class t
extends t2 {
void p() {
System.out.println(super.i);
t2 t2 = new t2();
t2.i = 20; //我在这里已经将父类的i变成20了
System.out.print(super.i); //为什么在这里显示的还是10啊,求助,谢谢 } public static void main(String[] args) {
t t = new t();
t.p();
}
}
int i = 10;
}public class t
extends t2 {
void p() {
System.out.println(super.i);
t2 t2 = new t2();
t2.i = 20; //我在这里已经将父类的i变成20了
System.out.print(super.i); //为什么在这里显示的还是10啊,求助,谢谢 } public static void main(String[] args) {
t t = new t();
t.p();
}
}
t2.i = 20; //我在这里已经将父类的i变成20了这里你已经实例化另外一个对象了,你打应的却是super.i也就是主类的对象t
所以是10.
这个语句是不是有问题呢?!
而且楼上也说了
super.i的值并不是你声明的对象的值!
int i = 10;
}public class Test
extends T2 {
void p() {
System.out.println(super.i);
T2 t2 = new T2();
t2.i = 20; //我在这里已经将父类的i变成20了
System.out.println(super.i); //为什么在这里显示的还是10啊,求助,谢谢
this.i =20;
System.out.println(super.i); } public static void main(String[] args) {
Test t = new Test();
t.p();
}}