java中静态变量问题中值的问题

aesqw 2014-07-21 07:48:24
public class DuotaiTest {
public int aa;
//父类
public DuotaiTest() {super();
}
}
//子类
public class DT extends DuotaiTest {
static int aa; public DT() { super();
}
public static void main(String[] args) {
DuotaiTest d=new DT();
d.aa++;
System.out.println(d.aa);
DuotaiTest ss=new DT();
System.out.println(ss.aa);
}
}运行结果:1
0
有那位高手知道为什么结果不是 1
1
...全文
334 4 打赏 收藏 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
aesqw 2014-07-26
  • 打赏
  • 举报
回复
自己顶一个!!
showhunter74 2014-07-22
  • 打赏
  • 举报
回复
因为你new 了两个对象啊。那就是说内存中有两个 static aa,前一个你自加了,后一个没自加。
luoyefeiwu1 2014-07-22
  • 打赏
  • 举报
回复
2楼正解!结贴吧
七脉 2014-07-21
  • 打赏
  • 举报
回复
亲这是属性不是方法,不要曲解多态,d.aa++这一步的赋值等于赋值了你那个父类的属性;如果想让结果等于1,把你父类的aa改为静态!

51,407

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧