我的代码中找不到符号错误(符号:方法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新手。
提前谢谢。
答案 0 :(得分:4)
您需要将car2
声明为CarLux
,而不是Vehicle
。
CarLux car2 = new CarLux();
这是因为setAr()
方法是在CarLux
上定义的。 car2
目前保存在Vehicle
类型的变量中,因此当您调用car2
方法时,只有Vehicle
声明的方法可用。
答案 1 :(得分:0)
你只能通过CarLux类型的对象调用setAr方法,因为这是CarLux而不是Vehicle的方法所以你必须将car2转换为CarLux然后调用这样的方法 -
((CarLux)car2).setAr(false);