1

親クラス (Plate) といくつかの子クラス (WoodenPlate、PorcelainPlate など) をプログラムする必要があります。それぞれの子オブジェクトには、1 から始まるシリアル番号、次に 2 などのシリアル番号が必要です。この情報はどこに保存すればよいですか? 親オブジェクトのカウンターをインクリメントすることはできますか?

4

1 に答える 1

2

これは、Childクラスの 1 つがどのように見えるかです。

class WoodenPlate extends Plate {
    private static int counter = 0;
    private int serialNumber;

    public WoodenPlate() {
        serialNumber = ++counter;
    }
}

そして、 の各インスタンスに対して、パブリック アクセサーを使用してWoodenPlateアクセスできます。serialNumber

このように残りのChildクラスを定義できます。それぞれにstaticカウンターとserialNumberフィールドがあります。


1カウントをfro everyから開始するChildのではなく、どの Child クラスがインスタンス化されたかに関係なく、カウントを前のクラスから継続したい場合は、Parentクラスにこれらのフィールドが必要です。

class Parent {
    protected static int counter = 0;
    protected int count;

    public int getCount() {
        return count;
    }
}

Child次に、各クラスからフィールドを削除します。

于 2013-02-18T19:03:25.337 に答える