当子类对象存储在超类数组中时,如何调用子类方法?

shinryu333
{
    Ship ships = new Ship();
    CargoShip cargoShips = new CargoShip();
    CruiseShip cruiseShips = new CruiseShip();

    Ship[] allShips = {ships, cargoShips, cruiseShips};

    allShips[0].setShipName("Boom");
    allShips[0].setYearBuilt("1900");
    allShips[1].setShipName("Bang");
    allShips[1].setCargoCapaicty(200);
    allShips[2].setShipName("Bam");
    allShips[2].setMaxPassengers(500);


    for (int i = 0; i < allShips.length; i++)
    {
        System.out.println(allShips[i]);
    }
}

因此,Ship类是超类,而CargoShip和CruiseShip都扩展了Ship类。我已经将3个对象存储到Ship数组中。setCargoCapacity和setMaxPassengers是仅出现在子类中的方法。由于某些原因,我无法访问它们。我不知道如何做到这一点,以便我也可以访问子类方法。

斯穆特耶

您可以对象存储在数组中之前对其进行初始化

Ship ships = new Ship();
ships.setShipName("Boom");
ships.setYearBuilt("1900");

CargoShip cargoShips = new CargoShip();
cargoShips.setShipName("Bang");
cargoShips.setCargoCapaicty(200);

CruiseShip cruiseShips = new CruiseShip();
cruiseShips.setShipName("Bam");
cruiseShips.setMaxPassengers(500);

Ship[] allShips = {ships, cargoShips, cruiseShips};

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

从超类对象数组中调用子类方法

将子类中的对象放入超类类型的数组后如何调用子类方法?

当对象是子类类型时,为什么我不能从超类调用子类中的公共方法?

如何从修饰的子类方法中调用重写的超类方法

如何使子类自动调用超类方法

您如何在Java中从超类调用子类方法?

从超类调用子类方法

使用子对象数组时,如何调用抽象类的子类方法?

实例化子类时从超类调用方法

在调用方法时获取扩展超类的子类实例

如何从重写的子类方法调用超类的继承方法?

Java多态性如何调用子类对象的超类方法

Java继承问题。在超类数组中调用子类方法不会编译

调用超类方法而不是子类方法

Python-如何从子类实例调用超类的方法?

如何使用子类的数据调用超类方法?

Java:从超类构造函数中的子类调用的方法

确定用于调用子类中的方法的超类引用

为什么从子类的超类调用方法中获得“ this”?

超类引用无法在Java中调用子类方法

在向量C ++中从超类调用子类方法

Java继承:在超类中调用子类方法

从 Java 中超类类型的 ArrayList 调用子类方法

如何确保某些方法从子类(Java)中的方法从抽象超类中调用

在子类的方法中本地调用超类方法时,使用“ super”关键字还是使用超类实例?

Java继承:创建子类实例时如何调用超类方法?

从Python超类运行方法时,如何知道调用它的子类的名称?

NSNotificationCenter从超类或子类调用方法?

Javascript ES6:如何从超类中定义的静态方法中检索调用子类