Redefinição de método static e exceções

[quote=Hebert Coelho][quote=ECO2004]Você sabe se nesse livro menciona que um método sobrescrito somente não pode aumentar o número de exceções verificadas?[/quote]Sabe não. [=

Mano, eu li esse livro de Java a muuuuuito tempo atrás… =/

Agora o da Kathy Sierra sobre certificação eu tenho certeza que fala. [=[/quote]

Valeu!!

[quote=Rodrigo Sasaki]
Não gera erro porque não tem herança aí :)[/quote]
Não fique se prendendo a esses detalhes insignificantes :slight_smile:

Retiro o que eu disse sobre não dar erro, mas continuo achando que no caso dos métodos estáticos isso não faz sentido!
Para os métodos normais (não static) essa regra existe porque o método sobrescrito precisa respeitar o contrato definido pela classe mãe, por causa do polimorfismo.
Mas os estáticos são totalmente independentes. Não dá para chamar o método da classe filha por uma referência da classe mãe.

Até que alguém me explique vou considerar isso um defeito do Java ! :shock:

[quote=gomesrod][quote=Rodrigo Sasaki]
Não gera erro porque não tem herança aí :)[/quote]
Não fique se prendendo a esses detalhes insignificantes :slight_smile:

Retiro o que eu disse sobre não dar erro, mas continuo achando que no caso dos métodos estáticos isso não faz sentido!
Para os métodos normais (não static) essa regra existe porque o método sobrescrito precisa respeitar o contrato definido pela classe mãe, por causa do polimorfismo.
Mas os estáticos são totalmente independentes. Não dá para chamar o método da classe filha por uma referência da classe mãe.

Até que alguém me explique vou considerar isso um defeito do Java ! :shock: [/quote]

Não tem sentido chamar um método static através de um objeto, já que o método pertence à classe. Assim, em uma chamada polimórfica, o Java ignora o objeto e se restringe apenas ao tipo de variável declarada para chamar o método. Por isso, somente é chamado o método static da superclasse através de polimorfismo.

Os livros Core Java são bons para certificação?

Exatamente !
É justamente por isso que não existe sentido em obrigar o método estático da classe filha a respeitar o contrato daquele outro método na classe mãe.