我在代码中找不到符号错误(符号:方法setAr(boolean)
)。
这是我的Main.java
文件:
class Vehicle {
protected int marchs;
protected int rode;
public void xydar(int km) { System.out.print("\nxydei "+ km +" km!"); }
}
class Car extends Vehicle {
public Car() { this.rode = 4; }
public void xydar(int km) {
super.xydar(km);
System.out.println(" Estou de car!");
}
}
class CarLux extends Car {
private boolean ar;
public CarLux() { this.ar = true; }
public void setAr(boolean newAr) { this.ar = newAr; }
public void xydar(int km) {
super.xydar(km);
if (this.ar)
System.out.println(" ON!");
else System.out.println(" OFF!");
}
}
public class Main {
public static void main(String []args) {
Vehicle moto = new Vehicle();
moto.xydar(90);
Vehicle car1 = new Car();
car1.xydar(100);
Vehicle car2 = new CarLux();
car2.xydar(400);
car2.setAr(false);
car2.xydar(400);
}
}
如何正确调用
setAr()
方法?谁能帮我?我是Java的新手。提前致谢。
最佳答案
您需要将car2
声明为CarLux
,而不是Vehicle
。
CarLux car2 = new CarLux();
这是因为您的
setAr()
方法是在CarLux
上定义的。 car2
当前保存在类型为Vehicle
的变量中,因此,当调用car2
方法时,只有Vehicle
声明的方法可用。