Java 中的多态性问题

问题描述 投票:0回答:1

我正在 YouTube 上浏览 BroCode Java 教程,不幸的是我被这个多态性示例困住了。我创建了一个 Vehicle 父类,以及 Vehicle 类的 Boat、Bicycle 和 Car 子类,它们都具有自己的重载 void go(){} 方法。我想将 Boat Boat1、Car car1 和 Bicycle bike1 粘贴到 Vehicle 数组中,然后迭代该数组并调用其中的每个 go 方法。请让我知道我遇到了什么问题,提前谢谢您!

线程“main”中的异常 java.lang.ArrayStoreException:Car 在 TestPolymorphism.main(TestPolymorphism.java:9)

我尝试过使用该数组,因为我几乎肯定它不喜欢数组中的船、汽车和自行车对象,但没有运气。我尝试了几种不同的方法来构建数组,例如 车辆[]赛车手=新车辆[2];车辆[0]=car1;车辆[1]=船1;车辆[2]=船2; 但一直显示相同的错误。

public class TestPolymorphism {
    public static void main(String[] args) {
        /*
         * polymorphism is greek for 'many' 'forms', and it is the ablility of an object
         * to indentify as more than one type
         */
        Car car1 = new Car(); Boat boat1 = new Boat(); Bicycle bike1 = new Bicycle();

        Vehicles[] racers = {car1, boat1, bike1};

        for(Vehicles vehicle : racers){
            vehicle.go();
        }
    }
}
//parent class
class Vehicles{
    void go(){
        System.out.println();
    }
}
//child classes
class Boat extends Vehicles{
    @Override
    void go(){
        System.out.println("boat goes");
    }
}
class Car extends Vehicles{
    @Override
    void go(){
        System.out.println("car goes");
    }
}
class Bicycle extends Vehicles{
    @Override
    void go(){
        System.out.println("bike goes");
    }
}


java polymorphism
1个回答
0
投票

尝试关闭编辑器并再次重新打开

© www.soinside.com 2019 - 2024. All rights reserved.