Java 中是否继承了静态数据成员?
Is a static data member inherited in Java?
父项 class 的静态变量会像子项 class 一样继承,还是会创建一个新变量?
例如,class A
和 class B extends A
的静态计数器变量是否应该给出相同的值(如果我们没有为 class B
定义新的计数器)?
不,静态变量的行为不像 non-static 变量。如果您使用继承的 class 之一更改静态变量的值,它将影响所有其他继承的 class 数据。
因为静态变量只创建一次。即使您正在创建多个对象,也不会一次又一次地创建静态变量。它们在执行开始时创建并存储。每当您访问静态变量时,您将获得相同的变量。
即
如果您以 B.count 或 C.count 的身份访问,您将获得相同的变量。
所以你只有一个变量,那么你不能为单个变量中的两个对象分别维护计数。
父项 class 的静态变量会像子项 class 一样继承,还是会创建一个新变量?
例如,class A
和 class B extends A
的静态计数器变量是否应该给出相同的值(如果我们没有为 class B
定义新的计数器)?
不,静态变量的行为不像 non-static 变量。如果您使用继承的 class 之一更改静态变量的值,它将影响所有其他继承的 class 数据。
因为静态变量只创建一次。即使您正在创建多个对象,也不会一次又一次地创建静态变量。它们在执行开始时创建并存储。每当您访问静态变量时,您将获得相同的变量。 即
如果您以 B.count 或 C.count 的身份访问,您将获得相同的变量。 所以你只有一个变量,那么你不能为单个变量中的两个对象分别维护计数。