我有一个抽象类,在那个抽象类中我有一个数组,我希望扩展它的每个类都有数组2个整数,无论如何。我知道你可以在方法中定义数组大小,但这就是你可以做到的。这里有一些代码
public abstract class entity{
int pos[]
// want this variable to be two ints long no matter what extends it
}
这可能吗?
答案 0 :(得分:4)
您可以在超类中实例化数组,并使用方法限制对它的访问。这样,没有子类可以改变数组的大小。
private int[] pos = new int[2];
protected void setPos(int index, int value) {
pos[index] = value;
}
protected int getPos(int index) {
return pos[index];
}
答案 1 :(得分:2)
为什么需要扩展类来初始化它?您可以在超类本身中将其初始化为int[2]
。
顺便说一下,你的班级entity
应该被称为Entity
。 pos
可以是final
或private
,也可以是两者。
答案 2 :(得分:1)
protected final int[] pos = new int[2];
声明它protected
可确保从中派生的所有类型都可以访问它。
声明它final
可确保任何派生类型都不会改变引用指向的内容。
答案 3 :(得分:0)
试试这个
int[] pos = new int[2];