方法未正确显示的输出

我创建了4个类和一个类来测试所有内容。我认为我已经为3个类正确输入了所有代码。


在我的,我必须用声明的类型车辆制作两个对象,但实际类型。至少制作一个声明类型为“车辆”的对象,但“卡车”为实际类型。使用上面创建的实例创建一个类型 Vehicle 的数组。执行名为 show 的 void 方法,并将 Vehicle 数组作为其唯一参数。testVehiclePassCar


从已创建的数组中创建车辆。在 show 方法中,使用 foreach 循环来处理 Object 数组。对于每个对象,显示其描述方法,后跟该方法。如上所述创建四个类。ArrayListtoString


不要添加 UML 关系图中未显示的任何属性或方法。该方法输出一个描述该类的字符串。请参阅下面有关每辆车的第一行。覆盖每个子类中的说明。不要修改任何内容。创建一个名为测试您的工作的可执行类。在 中,添加完成以下任务的代码。示例输出可能有助于您了解这些任务。description()VehicleTestVehicleTest


自从我习惯Java以来已经有一段时间了,所以我非常生锈。我读过书,在网上寻找信息,但我无法让我的代码以正确的方式显示。


这是它应该看起来像的样子:


显示方法的输出。


在此应用程序中,乘用车是向个人注册的日常车辆:


make=Ford, model=Mustang, year=2016, price=44500.0

PassCar numPass=5, AC=true

Motor EcoBoost, cylinders=6, bhp=310, displacement=2.3


In this application, a Truck is a vehicle designed to transport cargo


make=Dodge, model=Ram, year=2016, price=46000.0

Truck type=pickup, capacity=1500

Motor Hemi, cylinders=8, bhp=707, displacement=5.7


In this application, a passenger car is an every day vehicle registered to an individual


make=Tesla, model=Model S, year=2016, price=121000.0

PassCar numPass=2, AC=true

Motor P90D, cylinders=0, bhp=762, displacement=0.0


Output from ArrayList in main


make=Ford, model=Mustang, year=2016, price=44500.0

PassCar numPass=5, AC=true

Motor EcoBoost, cylinders=6, bhp=310, displacement=2.3


make=Dodge, model=Ram, year=2016, price=46000.0

Truck type=pickup, capacity=1500

Motor Hemi, cylinders=8, bhp=707, displacement=5.7


make=Tesla, model=Model S, year=2016, price=121000.0

PassCar numPass=2, AC=true

Motor P90D, cylinders=0, bhp=762, displacement=0.


GCT1015
浏览 65回答 1
1回答

青春有我

从您想要的输出来看,您需要为每个对象调用车辆toString()方法一次。但是,由于您已重写子类中的车辆类方法,因此无法执行此操作。因此,您必须在车辆类中定义另一个方法并改为调用该方法。class Vehicle {        public String toString2() {            return "Vehicle make="  + this.make + ", model=" + this.model + ", year=" + this.year + ", price=" + this.price + " " ;        }}您可以使用public static void showVehicle(Vehicle[]ara) {            for(Vehicle i: ara){                 i.description();                 System.out.println(i.toString2());                 System.out.println(i);            }}由于您在子类级别为两种类型的车辆定义了电机属性,因此您无法使用车辆对象打印电机,因此您应该使用方法和向下转换的实例检查它们正在使用哪种类型的对象if (i instanceof PassCar){     System.out.println(((PassCar)i).motor);}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java