1

このトピックに関連する他の質問をいくつか読みましたが、正直なところ、提供された回答についてかなり迷っており、理解した回答はうまくいかなかったようです。

私はap comp sciコースの紹介をしているので、より簡単な回答をいただければ幸いです。飛行機のコンストラクターでエラーが発生しましたが、これは上記のエラーであり、それを解決する方法がわかりません。スーパーメソッドを使用してみましたが、エラーがまだ存在していたため、間違っていた可能性があります。

飛行機のクラス:

public class Airplane {

    private Seat[][] seats;
    public static final int FIRST_CLASS = 1;
    public static final int ECONOMY = 2;
    private static final int FC_ROWS = 5;
    private static final int FC_COLS = 4;
    private static final int ECONOMY_ROWS = 5;
    private static final int ECONOMY_COLS = 6;

    public Airplane() {
        seats = new Seat[FC_ROWS][ECONOMY_COLS];
    }

    public String toString() {
        String str = "";
        for (int i = 0; i < FC_ROWS; i++) {
            for (int j = 0; j < ECONOMY_COLS; j++) {
                str = str + seats[i][j].toString();
            }
            str += "\n";
        }
        return str;
    }

    public class Seat {

        private int seatType;
        private boolean isReserved;
        public static final int WINDOW = 1;
        public static final int AISLE = 2;
        public static final int CENTER = 3;

        public Seat(int inSeatType) {
            seatType = inSeatType;
            isReserved = false;
        }

        public int getSeatType() {
            return seatType;
        }

        public void reserveSeat() {
            isReserved = true;
        }

        public boolean isAvailable() {
            if (isReserved = false) {
                return true;
            } else {
                return false;
            }
        }

        public String toString() {
            if (isReserved == false) {
                return "*";
            } else {
                return "";
            }
        }
    }
}
4

3 に答える 3

2

ただし、コードにはそのようなコンパイル エラーはありません。質問のタイトルの答えを明確にします。

継承があり、サブクラスのオブジェクトが作成されるたびに、サブクラスのコンストラクターは、階層内のすべてのスーパークラスのコンストラクターを呼び出します。(オブジェクトまで) デフォルトでは、引数なしのコンストラクターを呼び出します。(なお、コンストラクターを定義していない場合、jvm は 1 つの引数なしを生成しますが、定義した場合、jvm は何も提供しないため、提供する必要があります。)

引数のないコンストラクター以外のスーパークラスで他のコンストラクターを提供した場合、引数のないコンストラクターを期待しているサブクラスは、それを見つけることができません。定義もjvmもbczを提供しないためです。他のコンストラクターの存在。

これを回避するには、スーパークラスに引数なしのコンストラクターを含めるか、super.

subClass(){
super(<params>)
}
于 2013-04-04T05:38:35.910 に答える