Итак, я хочу создать массив полиморфных классов в Java. Это массив животных, и я хочу добавить в массив разных видов животных. Животное - это суперкласс, а разные виды животных - это подклассы, и мне нужно реализовать метод, который добавляет конкретное животное к массиву на основе атрибутов, но поскольку у всех видов животных разные атрибуты, я не знаю, как сделай это. У меня есть этот основной метод до сих пор, и она составляет:Возможно ли иметь переменные условия в методе Java?
public void addAnimal(String name, double weight) {
if ((numberanimals < animals.length) && (numberanimals == 0)) {
animals[0] = new Animal(name, weight);
numberanimals += 1;
} else if (numberanimals < animals.length) {
animals[numberanimals] = new Animal(name, weight);
numberanimals += 1;
} else {
System.out.println("Zoo is full.");
}
}
Все животные имеют имя и вес, но как я могу добавить собаку, например, на основе его длины поводка или акулы с логическое значение, которое говорит голоден ли он или нет. Возможно ли это сделать одним способом?
Обычно вы можете создать животное первого и передать его в 'addAnimal (Animal а)' (например, 'addAnimal (новый жирафа ("Коротышка"))'). – molbdnilo
Вы должны изменить метод на 'public void addAnimal (Животное животных)', и он сможет получать любой тип животных (классы, которые наследуются от Animal). Затем вы просто создаете животное перед вызовом метода. –
Вы можете использовать абстрактный метод предикатов для суперкласса и переопределить его с различными условиями выбора в подклассах. –