Я пишу программу, которая демонстрирует использование методов наследования и переопределения. Я хочу создать оператор if, который включает использование исключения. Я включил исключение в мой оператор if, но когда я пишу «исключение бросков» в начале метода, я получаю сообщение об ошибке n, в котором говорится, что «« переопределенный метод не выбрасывает исключение ». Вот код:«переопределенный метод не выбрасывает исключение»?
Sub класса
public class Carnivore extends Animal
{
public Food eat(Food x) throws Exception
{
if (x.equals("Plants")) {
throw new Exception("Carnivores only eat meat!");
} else {
return x;
}
}
public void makeNoise()
{
noise = null;
}
public String getNoise()
{
return noise;
}
}
Супер класс
abstract public class Animal {
String name;
int age;
String noise;
abstract public void makeNoise();
public String getName() {
return name;
}
public void setName(String newName) {
name = newName;
}
abstract public Food eat(Food x);
}
Любая помощь на том, как переписать это так, что исключение должным образом оценена , благодаря.
Либо добавить броски пункта суперкласса или удалить его из подкласса. – chrylis
есть слишком много релевантных вопросов о stackoverflow как [Исключение и Наследование в Java] (http://stackoverflow.com/questions/12978798/exception-and-inheritance-in-java) –