final?O modificador final em Java é usado para declarar que um elemento (variável, método ou classe) não pode ser modificado após sua atribuição. Ele pode ser aplicado a variáveis, métodos e classes.
finalUma variável marcada como final não pode ter seu valor alterado após ser inicializada. Para tipos primitivos, isso significa que o valor não pode mudar, e para objetos, que a referência não pode ser alterada (embora o estado do objeto ainda possa mudar).
final int valor = 10;
valor = 20; // Erro de compilação: não é permitido alterar o valor
final Pessoa pessoa = new Pessoa();
pessoa = new Pessoa(); // Erro: não pode alterar a referência
pessoa.setNome("Novo Nome"); // Válido: o estado interno pode mudar
finalUm método final não pode ser sobrescrito (override) por subclasses. Isso garante que o comportamento do método não será alterado em classes derivadas.
public class Exemplo {
public final void metodoFinal() {
System.out.println("Este método não pode ser sobrescrito");
}
}
class SubExemplo extends Exemplo {
// Erro: não é possÃvel sobrescrever o método
public void metodoFinal() {
System.out.println("Tentativa de sobrescrever");
}
}
finalUma classe final não pode ser estendida (herdada). Isso é útil quando você quer evitar que alguém crie subclasses dessa classe.
public final class ClasseFinal {
// Conteúdo da classe
}
class SubClasse extends ClasseFinal {
// Erro: não é possÃvel herdar de uma classe final
}