为了账号安全,请及时绑定邮箱和手机立即绑定

方法未正确显示的输出

方法未正确显示的输出

GCT1015 2022-09-01 16:20:43
我创建了4个类和一个类来测试所有内容。我认为我已经为3个类正确输入了所有代码。在我的,我必须用声明的类型车辆制作两个对象,但实际类型。至少制作一个声明类型为“车辆”的对象,但“卡车”为实际类型。使用上面创建的实例创建一个类型 Vehicle 的数组。执行名为 show 的 void 方法,并将 Vehicle 数组作为其唯一参数。testVehiclePassCar从已创建的数组中创建车辆。在 show 方法中,使用 foreach 循环来处理 Object 数组。对于每个对象,显示其描述方法,后跟该方法。如上所述创建四个类。ArrayListtoString不要添加 UML 关系图中未显示的任何属性或方法。该方法输出一个描述该类的字符串。请参阅下面有关每辆车的第一行。覆盖每个子类中的说明。不要修改任何内容。创建一个名为测试您的工作的可执行类。在 中,添加完成以下任务的代码。示例输出可能有助于您了解这些任务。description()VehicleTestVehicleTest自从我习惯Java以来已经有一段时间了,所以我非常生锈。我读过书,在网上寻找信息,但我无法让我的代码以正确的方式显示。这是它应该看起来像的样子:显示方法的输出。在此应用程序中,乘用车是向个人注册的日常车辆:make=Ford, model=Mustang, year=2016, price=44500.0PassCar numPass=5, AC=trueMotor EcoBoost, cylinders=6, bhp=310, displacement=2.3In this application, a Truck is a vehicle designed to transport cargomake=Dodge, model=Ram, year=2016, price=46000.0Truck type=pickup, capacity=1500Motor Hemi, cylinders=8, bhp=707, displacement=5.7In this application, a passenger car is an every day vehicle registered to an individualmake=Tesla, model=Model S, year=2016, price=121000.0PassCar numPass=2, AC=trueMotor P90D, cylinders=0, bhp=762, displacement=0.0Output from ArrayList in mainmake=Ford, model=Mustang, year=2016, price=44500.0PassCar numPass=5, AC=trueMotor EcoBoost, cylinders=6, bhp=310, displacement=2.3make=Dodge, model=Ram, year=2016, price=46000.0Truck type=pickup, capacity=1500Motor Hemi, cylinders=8, bhp=707, displacement=5.7make=Tesla, model=Model S, year=2016, price=121000.0PassCar numPass=2, AC=trueMotor P90D, cylinders=0, bhp=762, displacement=0.
查看完整描述

1 回答

?
青春有我

TA贡献1784条经验 获得超8个赞

从您想要的输出来看,您需要为每个对象调用车辆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);

}


查看完整回答
反对 回复 2022-09-01
  • 1 回答
  • 0 关注
  • 64 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信