gpt4 book ai didi

java - 如何创建复制构造函数(错误: actual and formal argument lists differ in length)

转载 作者:行者123 更新时间:2023-12-02 10:01:00 27 4
gpt4 key购买 nike

我当前的作业(用 Java 完成)遇到问题。我得到了一个与抽象类和子类有关的项目。但是,我一直坚持为其创建复制构造函数,因为我不断收到错误:实际参数列表和形式参数列表的长度不同。这里, arr 是抽象的“ super ”类,其内部的构造函数仅被定义(如下所示)。构造函数具有与 2D 数组的行 (m) 和列 (n) 相对应的参数。在 Board 类(扩展了 arr)中,我必须定义构造函数和复制构造函数。我已经使用 super(m,n) 定义了构造函数,但无法定义复制构造函数(并且我不确定子类构造函数在这里是否正确)。

在 arr 类中:

protected int a, b;
protected Arr (int height, int width) {
a = height;
b = width;
}

在板子类中:

public class Board extends Arr{
private int[][] space;
public Board (int a, int b){
super(a,b);
this.space = new int[a][b];
}

复制构造函数

public Board(Board X) {
board copy = new Board(a,b);
copy.space = X.space;
}

我在“public board(board X) {”行上收到错误,因为我似乎有错误的参数。然而,我不被允许改变这里的论点。根据我之前对此的研究,我只知道复制构造函数复制参数对象,但我不能这样做,因为我不知道如何创建一个。感谢您的帮助

最佳答案

首先,您在类定义中缺少关键字“class”:

public class board extends arr

您的复制构造函数不正确:

board copy = new board(a,b);
copy.data = X.data;

您所做的只是创建一个不同的 board 实例,该实例会立即被丢弃。您没有设置实例的任何值。

您需要调用 super 构造函数:

super(X.m, X.n);

类名应该是 PascalCase

关于java - 如何创建复制构造函数(错误: actual and formal argument lists differ in length),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55630046/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com