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();
}
}
解决方案 »
- 如何通过并口转USB口线,往打印机发送ESC/POS指令
- 怎么用java画矩形?并且可以在后续添加直线?还有Graphics.drawPolyline(int[] a,int[] b,int n);的用法。谢谢了
- 您好,想请教您一个关于成员变量异包异类调用的问题
- 求高手编个JAVA程序!
- 关于socket通信的问题,客户端发完一个请求,得到相应的回应后,再发另外一个请求时,结果服务器端读不到
- 关于jsp读取文件的问题
- 问一个数据连接的编码问题
- 谁有weblogic8.1下连接sqlserver6.5的驱动,我谢谢了
- 一个关于打印的问题?
- Java读取内存,文件,数据库中的数据的速度排序。
- 如何使自己定义的事件类有效?
- 什么是抽象类,和普通类有什么区别吗?
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();
}}