У меня проблемы с текущим заданием, которое я получил (сделано на Java).
Мне дали проект, чтобы сделать с абстрактным классом и подклассами. Тем не менее, я застрял с созданием конструктора копирования для него, потому что я продолжаю получать ошибку: фактические и формальные списки аргументов различаются по длине.
Здесь arr - абстрактный «супер» класс, внутри которого определена только функция конструктора (показано ниже). Конструктор имеет аргументы, которые соответствуют строкам (m) и столбцам (n) двумерного массива. В классе Board (который расширяет arr) я должен определить как конструктор, так и конструктор копирования. Я определил конструктор, используя super (m, n), но я не могу определить конструктор копирования (и я не уверен, что конструктор подкласса здесь тоже правильный).
В классе обр:
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) {", так как кажется, что у меня неверные аргументы. Однако мне не разрешено менять аргументы здесь. Из моего предыдущего исследования об этом я знаю только, что конструктор копирования копирует объект аргумента, но я не могу этого сделать, потому что я не знаю, как его создать.
Спасибо за вашу помощь