FINAL
Não Herdada
// Não Sobrescrito
A
classe não pode ser
herdada ou estendida por outra classe, e nenhum
de seus métodos poderão ser sobrescritos.
Obs: a palavra-chave final pode
ser combinada com qualquer modificador de acesso, ou seja, uma classe pode ter
acesso default ou público e ser também marcada como final.
package bebida;
public final class Refrigerante{
//pública
e final
}
|
package bebida.brasil;
import bebida.Refrigerante;
/*
erro de compilação - a classe Coca não pode herdar
*
de Refrigerante pq esta está marcada como final */
public class Coca extends Refrigerante
{
}
|
Classe
final: impede que a classe seja herdada.
Método final:
impede um método de ser sobrescrito em uma subclasse.
Argumento final:
valor não poderá ser modificado dentro do método.
Nesse caso, “modificado” significa a retribuição de um novo valor à variável, ou seja, o argumento final deve manter o mesmo valor que o parâmetro tinha quando foi passado para o método até o final.
public class Argumentos {
public void setArg(String
obj1,
final String
obj2) {
String obj3 = new String();
obj1
= obj3;
/*
erro, argumentos final não podem ter
* um novo valor reatribuído */
obj2
= new String();
/* erro, argumentos final não podem ser
* modificados */
obj2
= obj3;
}
}
|