【发布时间】:2022-11-29 08:18:50
【问题描述】:
我正在尝试为汽车和子类创建一个父类,每个子类都有单独的方法并将它们存储在一个数组中,然后如果该类是子类,则尝试调用它的方法
家长班
public class car {
public String name ;
public double price ;
public car (String name , int price) {
this.name = name ;
this.price = price;
}
public String toString() {
return "car name : "+this.name
+" Price : " +this.price ;
}
}
小类
public class CarMotors extends car {
public float MotorsCapacity ;
public CarMotors( String name, int price , float MotorsCapacity) {
super(name, price);
this.MotorsCapacity = MotorsCapacity ;
}
public float getMotorsCapacity() {
return this.MotorsCapacity;
}
}
主类
public class Test {
public static void main(String[] args) {
car [] cars = new car[2] ;
cars[0] = new car("M3" , 78000);
cars[1] = new CarMotors("M4" , 98000 , 3.0f);
for(int i=0 ;i<2;i++){
if(cars[i] instanceof CarMotors) {
System.out.println(cars[i].getMotorsCapacity()); // error here
}else {
System.out.println(cars[i].toString());
}
}
}
}
我们你看到我无法打印 getMotorsCapacity() 我是 java 的新手我认为需要进行转换但现在不知道如何
【问题讨论】:
-
您使用的是哪个版本的java?
-
当发布有关创建错误消息的代码的问题时,将错误消息包含在问题正文中会很有帮助,最好使用复制和粘贴。但是,无论如何,您尝试过
System.out.println(((CarMotors) cars[i]).getMotorsCapacity());吗?
标签: java class oop methods casting