我正在編寫一個程序,演示如何使用繼承和重寫方法。我想創建一個涉及使用異常的if語句。我在我的if語句中包含了這個異常,但是當我在方法的開頭寫入「throws exception」時,我得到n錯誤消息,說「」重寫方法不會拋出異常。「以下是代碼:「重寫的方法不會拋出異常」?
子類
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);
}
如何重新寫這篇文章,以使異常正確拋出的任何幫助表示讚賞, 謝謝。
要麼添加throws子句對超或從子類中刪除。 – chrylis
有像堆棧溢出的相關問題太多了,如[Java中的異常和繼承](http://stackoverflow.com/questions/12978798/exception-and-inheritance-in-java) –