quer dizer que nenhuma classe Filha desta classe poderá sobrescrever este método.
classFinalClass{publicfinalvoidfinalMethod(){System.out.println("final");}}publicclassTestextendsFinalClass{// ERRO de compilação!publicvoidfinalMethod(){}}
caiofilipini
Declarar um método como final é a mesma coisa que dizer:
:arrow: “Esse método não poderá sofrer override.”
[]'s
Ironlynx
Completando o NewRadical:
No caso de variáveis, o modificador final impossiblita que a variável seja reinicializada com outro valor. Lembre-se de que no caso de objetos, a referência ao objeto que é final, não o objeto em si. Se a variável for de instância, é necessário fornecer um valor na hora de declará-la ou em todos os construtores da classe, caso contrário ocorrerá um erro de compilação. Variáveis de interface sempre são final e precisam ter seu valor declarado. (Fonte: modificadores by Bani)
Nunca é demais lembrar que variáveis locais declaradas como final ainda permitem q o compilador faça cast implicitamente no caso de seu tipo de retorno ser diferente do declarado na variável.(tipos relacionados claro)
exemplo:variável local declarada como final int e tipo de retorno do método é um float,o mesmo serve para char-byte,int-char,int-double…
Em todos os casos o Cast implícito será feito!
:arrow: Uma classe final não pode ser herdada.
:arrow: Um atributo final não pode ter o seu valor alterado. É uma contante.
:arrow: Um método não pode ser sobrescrito.