我试图弄清楚如何定义包含子类的某种类型的对象的数组。这就是我所拥有的:
Property[] list = new Property[100];
我相信这将定义一个包含 100 个属性的数组,但是这个数组是否也可以包含 SubProperty。SupProperty 是 Property 类的扩展。
非常感谢。
是的,数组也可以包含SubProperty
。请在下面找到代码 -
class SubProperty extends Properties{
}
和
Properties[] obj = new Properties[100];
obj[1] = new SubProperty();
你可以取回你的对象,比如 -
for(Properties prop: obj){
if(prop instanceof SubProperty){
SubProperty subProp = (SubProperty)prop;
System.out.println(subProp);
}
}
是的。一个SubProperty
对象就是一个Property
对象。您始终可以将子类交换为其父类。
您可以在可以使用其超类的任何地方使用子类。这就是 OOP 替换原则。它也适用于这种情况。