[英]Error calling a subclass method from another class
我有三个班:
public class BikeSystem {
static Bicycle[] bicycleArray = new Bicycle[100];
static int currentBikes = 0;
public static void addUnicycle() {
bicycleArray[currentBikes] = new Unicycle();
currentBikes++;
}
public static void addUniWheel() {
for (int i=0; i < currentBikes; i++) {
if (bicycleArray[i] instanceof Unicycle)
bicycleArray[i].addWheel();
}
}
}
public class Bicycle {
// some variables
}
public class Unicycle extends Bicycle {
private int wheels;
public boolean addWheel() {
wheels++;
return true;
}
}
但是,当我尝试在BikeSystem类中调用bicycleArray[i].addWheel()
方法时,我一直收到“无法找到符号”错误。 我该如何解决这个问题?
你应该明确地指出你在实例操作Unicycle
,以获得对addWheel()
方法。 你可以通过施法来做到这一点。
((Unicycle) bicycleArray[i]).addWheel();
显然,如果你尝试转换为Unicycle
上的对象不是一个实例Unicycle
或进一步的子类,你会得到一个ClassCastException
bicycleArray
被声明为Bicycle
数组,并且没有定义addWheel
方法。
你正在尝试类似的东西:
Bicycle bicycle = new Bicycle();
bicycle = new Unicycle();
bicycle.addWheel(); // err
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.