[英]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.