0

我对 Java 类通过“扩展”继承的内容有点困惑。我有一个名为“Shape”的类,以及多个类,如 box、circle。盒子、圆圈等都具有三个共同的变量。需要 Shape 类来保存一个静态变量来计算类的数量。我在另一个类中也有一个 Shapes 向量。如果我声明一个圆形类,它会正确适合形状向量吗?我还注意到我可以做这样的事情:

Shape shape = new Circle();  
ShapeVector.add(shape);  

我知道有接口,但它们是否可以包含我需要的静态变量,并且如果向量由接口组成,它将接受实现的类吗?

我已经尝试过接口、抽象类等,但我认为有太多的组合需要测试,而且比提出问题要花更长的时间。

4

1 回答 1

1

你需要这个:

package naishe.so.shapes;

import java.util.Vector;

public abstract class Shapes {
    private static int counter = 0;//Not really required, you could just count vector length
    private static final Vector<Shapes> shapesVector = new Vector<Shapes>();

    public Shapes() {
        counter++;
        shapesVector.add(this);
    }

    public Vector<Shapes> getAllShapes(){
        return shapesVector;
    }

    public int getCount(){
        return counter;
    }
}
于 2011-12-29T05:12:55.577 回答