【发布时间】:2012-02-24 00:48:54
【问题描述】:
我需要收集几个不同的类。在我看来,子类继承自更通用的超类。所以我有 SuperClass 类,它当前有一个 Object 类型的成员变量 o,它将采用子类 SubClassA 和 SubClassB 之一的单个实例。 SubClassA 和 SubClassB 有一些共同点,例如需要创建数据库表来保存它们自己的描述。因此,每个子类都需要有一个方法 CreateDatabaseTables()。目前我有一个 SuperClass 实例的集合,每个实例都包含一个 Object o,它可以是我在编译时不知道的几个类之一。也许这不是最好的方法......
我的问题是,当我遍历集合时,我可以调用类似的东西
for (int i = 0; i < superClassArray.size; i++)
{
superClassInstance[i].o.CreateDatabaseTables();
}
不必将 Object o 转换为子类之一?
还是我把整个事情搞砸了,我只是做错了?这个概念叫做继承,还是别的什么?我不认为这是继承,因为我不打算在 SuperClass 中编写 CreateDatabaseTables() 方法。每个类都必须有自己的方法。
【问题讨论】:
-
一个超类应该对它的子类有no依赖。您的设计已损坏,应该修复。我怀疑您过于依赖继承来解决不需要继承来解决的问题,而应该通过组合来解决。
标签: java inheritance