Se algum puder me ajudar é o seguinte:
to estudando o scjp da kathy e tem a seguintes afirmações ( vou escrever em ingles para nao ter chance de traduzir algo errado, mas minha duvida nao é sobre tradução, não entendi o contexto mesmo) :
"A legal non abstract implementing class has the following properties: " // isso tá beleza, é so pra introduzir a questão.
- “It must not declare any new checked exceptions for an implementation method.”
- “It must not declare any checked exceptions that are broader than the exceptions declared in the interface method.”
- “It may declare runtime exceptions on any interface method implementation regardless of the interface declaration.”
essas 3 afirmações que nao entendi…
valeu!
- A classe filha não pode lançar mais exceções que o pai. Lembre-se a qualquer momento isso aqui tem que ser válido:
Pai objeto = new Filho();
objeto.fazQualquerCoisa();
Pense no que aconteceria se a classe Filho lançasse uma exceção que não foi declarada no pai. Como o java verificaria o try, catch? Lembre-se estamos falando de exceções verificadas, onde o programador é obrigado a conhece-las e trata-las.
-
Na verdade, é o mesmo problema anterior. Pense na relação é um e verá que uma exceção mais geral na classe filha não “é uma” das exceções declaradas na classe pai. O que não ocorre no caso de exceções mais específicas.
-
Exceções não verificadas não precisam ser tratadas ou declaradas na cláusula throws. Nesse caso, criar exceções dentro da classe filha não fere o contrato da classe pai. Afinal, elas não devem acontecer a principio e, se ocorrem, pouco se pode fazer.
Leia o seguinte material adicional:
http://blog.caelum.com.br/2006/10/07/lidando-com-exceptions/
valeu pela resposta!
ainda me falta uma visão para simular como a jvm agiria…
mas tudo tem seu tempo…
dúvda de novo!
Regras para implementação da classe concreta que implementar uma interface:
“Declare no checked exceptions on implementation methods other than
those declared by the interface method, or subclasses of those declared by
the interface method.”
"não declarar checked exceptions na implementação de metodos diferentes daquelas que foram declaradas no metodo da inteface, ou subclasses desta declarada no metodo da interface"
nao entendi a parte em negrito, pq se tu declara uma Exception na interface, tu pode declarar uma subclasse, por exemplo IOException na implementação do metodo na classe concreta…