gpt4 book ai didi

java - 另一个 "cannot find symbol"

转载 作者:行者123 更新时间:2023-12-01 18:32:56 24 4
gpt4 key购买 nike

我在代码中遇到找不到符号错误(符号:方法 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< 声明的方法 将可用。

关于java - 另一个 "cannot find symbol",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23307108/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com