Я пытаюсь умножить массив, указанный в методе в абстрактном классе, в конкретный класс на значение в конкретном классе. Абстрактный класс реализует интерфейс, который выполняет массив double []. Исходный массив дается в методе String абстрактного класса. Метод, который я пытаюсь переопределить метод String в конкретном классе и умножить каждый элемент массива на значение, используя цикл for.
В абстрактном классе также есть метод toString () для печати массива.
Как получить доступ к массиву в строковом методе Абстрактного класса в конкретном классе?
Я попытался получить доступ к массиву в абстрактном классе, выполнив следующее: arrayabstract.ArrayMethod. execute (arr);
Интерфейс:
package test;
public interface Array {
double[] execute( double[] array);
}
Абстрактный класс:
package test;
import java.util.Arrays;
public abstract class arrayabstract implements Array {
public String arrayMethod() {
double[] arr = new double[] {1, 2, 3, 4};
return Arrays.toString(execute(arr));
}
public String toString() {
return arrayMethod();
}
}
Конкретный класс:
package test;
import java.util.Arrays;
public class ArrayConcrete extends arrayabstract{
@Override
public String arrayMethod() {
double[] arrayMultiplied = new double[arr.length];
for (int i = 0; i<arr.length; i++) {
double answerArray = arr[i] * 2;
arrayMultiplied[i] = answerArray;
}
return Arrays.toString(arrayMultiplied);
}
@Override
public double[] execute(double[] array) {
throw new UnsupportedOperationException("Not supported yet.");
}
}
Основной метод:
package test;
public class Test {
public static void main(String[] args) {
ArrayConcrete m1 = new ArrayConcrete();
System.out.println(m1);
}
}
Я получаю сообщение об ошибке "не удается найти символ", поскольку он не может получить доступ к массиву в абстрактном классе.