我对Java类继承“extends”有点困惑。我有一个名为“Shape”的类,以及多个类,如box,circle。盒子,圆圈等都有三个共同的变量。需要Shape类来保存静态var以计算类的数量。我在另一个类中也有一个Shapes矢量。如果我声明一个圆形类将正确地适合形状向量?我也注意到我可以这样做:
Shape shape = new Circle();
ShapeVector.add(shape);
我知道有接口但是它们可以包含静态变量,因为我需要计数,如果向量是由接口构成的,它会接受实现的类吗?
我已尝试使用界面,抽象类等,但我认为测试的组合太多,而且提问时间要长得多。
答案 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;
}
}