如何解决Java是否继承了静态数据成员?
父类的静态变量会照原样继承到子类,还是会创建一个新变量?
例如,class A
和class B extends A
的静态计数器变量应赋予相同的值(如果我们没有为class B
定义新的计数器)?
解决方法
否,静态变量的行为不同于非静态变量。如果您使用继承的类之一更改静态变量的值,它将影响所有其他继承的类数据。
原因静态变量仅创建一次。即使创建多个对象,也不会一次又一次创建静态变量。它们在执行开始时创建并存储。每当您访问静态变量时,您都会获得相同的变量。 即
如果您以B.count或C.count的身份访问,则将获得相同的变量。 因此,只有一个变量,则无法在单个变量中单独维护两个对象的计数。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。