2011-10-09 44 views
0

我有一个抽象类,并且在那个抽象类中我有一个数组,并且我希望每个扩展它的类都有数组2,而不管它是什么。我知道你可以在方法中定义数组大小,但这就是所有你可以做的。这是一些代码定义数组大小的Java抽象类

public abstract class entity{ 

int pos[] 

// want this variable to be two ints long no matter what extends it 
} 

这可能吗?

回答

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]; 
} 
0

试试这个

int[] pos = new int[2]; 
2

为什么你需要的扩展类的初始化呢?您可以将它初始化为超类本身的int[2]

顺便说一下你的班级entity应该叫Entitypos可以是finalprivate或两者。

1
protected final int[] pos = new int[2]; 

声明它protected确保所从中获得的所有类型将有机会获得它。

声明它final可确保没有派生类型会改变参考指向的内容。