1

我需要编写一个父类(Plate)和一些子类(WoodenPlate、PorcelainPlate 等),每个子对象都应该有一个从 1 开始的序列号,然后是 2,等等。我应该在哪里存储这些信息?我可以在父对象中增加一个计数器吗?

4

1 回答 1

2

这就是你的一个Child班级应该是这样的:

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

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

然后对于 的每个实例WoodenPlate,您可以访问serialNumberusing public 访问器

您可以Child像这样定义其余的类。他们每个人都有一个static柜台和一个serialNumber领域。


如果您不希望计数从1fro 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 回答