【发布时间】:2018-12-28 17:21:07
【问题描述】:
假设我有一个基本/主要abstract 类:AbstractObject。 AbstractObject 扩展了两个类:Object1 和 Object2。
这两个模板也有许多不同的类从它们扩展而来,例如,Object3、Object4 和 Object5 继承自 Object1,而 Object6、Object7 继承自 @987654332 @。
我希望每个单独的类(Object1、Object2、...、Object7)都有一个计数器来计算由它构成的实例数。
我以为我可以使用一些public static 变量counter,但我不确定如何在AbstractObject 中声明它,所以我的所有对象都不会复制代码。有什么想法吗?
abstract class AbstractObject {
...
public static counter = ?
}
class Object1 extends AbstractObject {
...
}
class Object2 extends AbstractObject {
...
}
class Object3 extends Object1 {
...
}
class Object4 extends Object1 {
...
}
class Object7 extends Object2 {
...
}
【问题讨论】:
-
你不能。每个类都需要有自己的计数器字段(为什么要公开?)。或者您可以使用单个共享的 CountManager,它会使用一些包含每个类的计数的 Map
。 -
也就是说,你为什么要计算一个类的实例?你想解决什么具体问题?
-
澄清一下,您希望每个对象都有一个单独的计数器(即 3
Object1、2Object2等),而不是计算每种类型的数量的计数器总共(即 20 个对象)? -
@JBNizet 没错,每个不同的类都有不同的计数器
标签: java inheritance