У меня есть курсовая работа для моего университетского проекта, и я борюсь с концепцией абстрактных классов. Я понимаю причину их создания, создания подклассов, и я понимаю простые примеры абстрактных классов. Вопрос заключается в том, чтобы просить конкретный класс Selector, который реализует абстрактные методы.Реализация абстрактных методов в конкретном классе
Создать абстрактный базовый класс, ASelector, с двумя абстрактными методами под названием selectorRange и selectorValue следующим образом:
метод selectorRange требует двух параметров, определяющих целое диапазон возможных значений от минимального до максимального значения (включительно) со следующей подписью публичный аннотация void selectorRange (int min, int max);
метод selectorValue возвращает случайное сгенерированное значение в диапазоне от min до max (включительно) и имеет следующую подпись: public abstract int selectorValue();
Создать конкретный класс, селектор, который реализует ASelector с соответствующим кодом для реализации обоих методов.
До сих пор у меня есть:
public class Selector extends ASelector {
@Override
public void selectorRange(int min, int max) {
min = 1;
max = 10;
}
@Override
public int selectorValue(int min, int max) {
Random r = new Random();
int randomNumber = r.nextInt(max - min) + min;
return randomNumber;
}
}
Но ошибка я получаю с селектором в заголовке метода. В нем говорится, что я не реализовал абстрактные методы, но у меня есть? Или я думаю, что у меня есть. Любая помощь будет оценена по достоинству.
Мой ASelector класс:
public abstract class ASelector {
public abstract void selectorRange(int min, int max);
public abstract int selectorValue();
}
Это не влияет на проблему, которую вы описываете, но 'min = 1; max = 10; 'просто перезаписывает значения параметров в' selectorRange'; это не имеет никакого полезного эффекта. –
Пожалуйста, покажите свой класс 'ASelector'. –
'public abstract int selectorValue()' в spec не совпадает с 'public int selectorValue (int min, int max) {' в вашем коде. –