【发布时间】:2015-04-11 20:51:57
【问题描述】:
如果我有一个像这样的继承类
class Animals{}
class Dog extends Animals{}
class Cat extends Animals{}
我怎么知道是哪一类? (我的意思是,如果想知道下面的一个对象是狗还是猫)
我有一个ArrayList 的Animals,其中包含Cats 和Dogs。我将此信息保存在一个文件中,以供以后加载信息。但问题是当我想加载我需要知道类的类型的信息时,用于调用狗或猫的构造函数(猫和狗有不同的构造函数参数)。
所以我的解决方案之一是存储对象的类型,以便在我加载信息时调用正确的构造函数。有没有更好的解决方案?
【问题讨论】:
-
@Beko:
instanceof运算符被认为是糟糕的 OO 设计,因为它不可扩展。 -
instanceof在这里行不通。他正试图找到存储在文件中的数据实例......
标签: java inheritance