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