我有一个基类Building
和子类House
和School
。我已经按照以下方式声明了Building
对象的array
。我不确定如何将子类分配给每个数组元素(运行时间类型)。
Building[] House = new Building[3];
Building[] School = new School[2];
您可以使用instanceof
确定子类
if (building instanceof House) {
House[0] = building;
}
我不确定您是在询问如何在运行时检查类型还是在运行时填充类型。如果后者,请使用instanceof
查看 @Salah的答案。特别是,为什么House
数组被Building
对象填充时School
数组被School
对象填充了我。
分配:
Building[] house = new House[3];
Building[] school = new School[2];
您还可以使用Building
对象填充数组,然后在需要沿着道路上进行检查。