Java类扩展

时间:2011-12-29 04:51:34

标签: java interface abstract extends implements

我对Java类继承“extends”有点困惑。我有一个名为“Shape”的类,以及多个类,如box,circle。盒子,圆圈等都有三个共同的变量。需要Shape类来保存静态var以计算类的数量。我在另一个类中也有一个Shapes矢量。如果我声明一个圆形类将正确地适合形状向量?我也注意到我可以这样做:

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

我知道有接口但是它们可以包含静态变量,因为我需要计数,如果向量是由接口构成的,它会接受实现的类吗?

我已尝试使用界面,抽象类等,但我认为测试的组合太多,而且提问时间要长得多。

1 个答案:

答案 0 :(得分: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;
    }
}