クラスの継承について
以下のように、throwsを含むメソッドをオーバライドする場合、 throwsも引き継ぐ必要はない。
class Animal {
Animal() {
System.out.println("Maiking an Animal");
}
void hoge() throws Exception {
System.out.println("animal.hoge");
throw new Exception();
}
}
class Hippo extends Animal {
Hippo() {
System.out.println("Maiking an Hippo");
}
void hoge() {
System.out.println("Hippo.hoge");
}
}
逆に、以下の場合はNG。
オーバライド元に同じException型のthrows節がなければならない。
class Animal {
Animal() {
System.out.println("Maiking an Animal");
}
void hoge() {
System.out.println("animal.hoge");
}
}
class Hippo extends Animal {
Hippo() {
System.out.println("Maiking an Hippo");
}
void hoge() throws HogeException {
System.out.println("Hippo.hoge");
throw new HogeException();
}
}
