4
respostas

Não entendi a questão. O método getClass é final na Classe Object e não consigo sobrepor.

O método getClass é final na Classe Object e não consigo sobrepor.

4 respostas

Método com a palavra chave "final" não permite sobreposição.

getClass(), notifyAll() e wait() são declarados como "final"

Você pode sobrepor os outros.

O "final" é uma palavra reservada do java que para métodos não permite sobreposição.

Se uma classe é final ninguém pode estender dela.

Em Java, coisas que possuem final não podem ser alteradas, ou seja, são constantes.

Para entender melhor, vamos ver a forma mais simples de sua utilização.

...
int variavel = 50;             // declarando uma variável inteira
final int constante = 50;    //declarando uma constante inteira

variavel = 100;     // É permitido alterar o valor da variável

constante = 50;    // Não é permitido alterar o valor da constante. Erro!

Quando estamos sobrepondo um método, estamos alterando seu conteúdo. Se o método que queremos sobrepor for final (constante), ocorrerá um erro. Ele não permite ser alterado.

Espero ter ajudado!

Depois vi a resposta da questão. O problema não é a questão da sobrescrita do método da superclasse e sim em relação ao getClass() sem parâmetro que estava declarando na minha classe.