definitivo :
Desvantagens da herança: Quebra o encapsulamento do código. O surgimento do final apenas compensa essa desvantagem.
palavra-chave final:
1-final é um modificador que pode modificar classes, métodos e variáveis;
2-As classes modificadas finais não podem ser herdadas
3-Os métodos modificados finais não podem ser substituídos
A variável modificada por 4-final é uma constante, que só pode ser atribuída uma vez e deve receber um determinado valor quando for definida.
regra :
As constantes definidas como finais são representadas por letras maiúsculas e cada palavra é separada por um sublinhado _.
Exemplo um:
classe Pai01{
string final FATHER01_NAME = "Zhang San";
final int FATHER01_AGE = 20;
final void show(){
// idade=9; //Erro!!! a idade está definida como final, recebeu um valor quando foi definida e não pode ser atribuída novamente.
System.out.println("Nome: " + PAI01_NAME);
}
}
aula final Pai02{
}
classe Son01 estende Pai01{
// public void show() { //Erro!!! Os métodos definidos por final não podem ser substituídos
//
// }
}
//class Son02 extends Father02{ //Erro!!! Classes definidas por final não podem ser herdadas
//
//}