Java 如何使用继承和构造函数使用2个不同大小的1个数组

Java 如何使用继承和构造函数使用2个不同大小的1个数组,java,arrays,inheritance,constructor,Java,Arrays,Inheritance,Constructor,我需要使用一个数组来跟踪一个游戏的分数,其中索引是游戏的级别。在父类中,玩家可以达到10级。在儿童班,他们被额外给予40个等级,总共50个 这一章是关于继承的,它们还包括构造函数。父类和子类中的构造函数都可以更改单个数组的大小吗 我尝试将数组声明为50大小,然后在每个构造函数中为我需要的大小分配内存。[10] 和[50]分别用于父类和子类。在Java数组中是不可扩展的,因此不能只“使用一个数组和两个不同的大小”。您可能想使用ArrayList: List<Integer> list

我需要使用一个数组来跟踪一个游戏的分数,其中索引是游戏的级别。在父类中,玩家可以达到10级。在儿童班,他们被额外给予40个等级,总共50个

这一章是关于继承的,它们还包括构造函数。父类和子类中的构造函数都可以更改单个数组的大小吗


我尝试将数组声明为50大小,然后在每个构造函数中为我需要的大小分配内存。[10] 和[50]分别用于父类和子类。

在Java数组中是不可扩展的,因此不能只“使用一个数组和两个不同的大小”。您可能想使用
ArrayList

List<Integer> list = new ArrayList<>();
List List=new ArrayList();
还有一个问题要问:你确定你需要继承这个任务吗?您只需创建所需大小的数组:

List<Integer> list = new ArrayList<>(40);
List List=newarraylist(40);

但即使这样也没有必要。如果没有剩余空间,列表将根据需要增长,因此您不应该关心它。

是的,在构造函数中,您应该能够像
array=new int[#]那样重新定义它。

另外,可能不是您问题的确切答案,但您可以使用列表而不是数组。Java列表可以调整大小


因此,您可以将其定义为
List
,而不是
int[]
,甚至不必担心大小。

层次结构中的最低级别必须为子类提供定义数组大小的选项

例如:

package io.medev.stackoverflow;

public class Game1 {

    private final int[] levels;

    public Game1() {
        this(0);
    }

    protected Game1(int additionalLevels) {
        this.levels = new int[10 + additionalLevels];
    }
}
和子类:

package io.medev.stackoverflow;

public class Game2 extends Game1 {

    public Game2() {
        this(0);
    }

    protected Game2(int additionalLevels) {
        super(40 + additionalLevels);
    }
}

与前面提到的其他方法一样,我通常建议在这种情况下使用列表而不是数组。

欢迎使用堆栈溢出。据我所知,您正在阅读一本关于Java编程的书。你能发布你正在处理的问题的要求吗?此外,在问题中添加一些代码片段,以配合口头解释。最后,你应该阅读一些关于改进你的问题的技巧,以吸引你寻求的信息。我认为每个人都会建议使用列表,在现实世界中,它肯定是正确的用法,因为它的动态大小,但我认为这个任务的目的是迫使我们使用构造函数来限制或允许数组的使用,以满足每个文件的特定需求。可能还有其他问题,所以我将发布我的代码,看看您是否认为应该这样做;这是我如何定义数组的。levelScore=新整数[10];是它在父类构造函数中的状态。levelScore=新整数[50];是它在子类构造函数中的状态。这是应该以这种方式工作,还是我做得不对?抱歉,格式太糟糕了。我不能让这东西做任何换行。