簡體   English   中英

從另一個類調用子類方法時出錯

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM