Java是否继承了静态数据成员?

问题描述

父类的静态变量会照原样继承到子类,还是会创建一个新变量?

例如,class Aclass B extends A的静态计数器变量应赋予相同的值(如果我们没有为class B定义新的计数器)?

解决方法

否,静态变量的行为不同于非静态变量。如果您使用继承的类之一更改静态变量的值,它将影响所有其他继承的类数据。

原因静态变量仅创建一次。即使创建多个对象,也不会一次又一次创建静态变量。它们在执行开始时创建并存储。每当您访问静态变量时,您都会获得相同的变量。 即

如果您以B.count或C.count的身份访问,则将获得相同的变量。 因此,只有一个变量,则无法在单个变量中单独维护两个对象的计数。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...