将子类分配给每个数组元素(运行时类型)



我有一个基类Building和子类HouseSchool。我已经按照以下方式声明了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对象填充数组,然后在需要沿着道路上进行检查。

最新更新