pessoal
li em um livro da Kathy Sierra, o seguinte:
class Animal{
public void eat() throws Exception {
// lança uma Exception
}
}
class Dog2 extends Animal{
public void eat() {
//nenhuma Exception
}
public static void main(String[] args){
Animal a = new Dog2();
Dog2 d = new Dog2();
a.eat(); // ok
d.eat(); // erro de compilação - exceção não reportada
}
}
porém, escrevi este código, compilei e rodei, sem problema algum.
então, minha dúvida é:
-
eu que não entendi alguma coisa, ou está faltando alguma coisa? se sim, o que?
-
o livro que está errado?
até onde eu sei, o que não é permitido é o contrário (a subclasse sobrescrever um método da superclasse, incluindo novas exceções verificadas, não declaradas no método do supertipo).
grato