English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutoriais Básicos de Java

Java Controle de Fluxo

Java Array

Java Orientação a Objetos (I)

Java Orientação a Objetos (II)

Java Orientação a Objetos (III)

Tratamento de Exceções Java

Java Lista (List)

Java Queue (fila)

conjunto Map do Java

conjunto Set do Java

Java entrada e saída (I)/O)

Reader Java/Writer

Outros tópicos do Java

Palavra-chave final Java

Neste tutorial, vamos aprender sobre variáveis finais, métodos finais e classes finais em Java através de exemplos.

A palavra-chave final em Java é usada para representar constantes. Ela pode ser usada com variáveis, métodos e classes.

Qualquer entidade (variável, método ou classe) uma vez declarada como final, pode ser atribuída apenas uma vez. Isso é,

  • Variável final não pode ser reinicializada com outro valor

  • Método final não pode ser overrides

  • Classe final não pode ser herdada

1. Variável final Java

Em Java, não podemos alterar o valor de uma variável final. Por exemplo,

class Main {
  public static void main(String[] args) {
    //Crie uma variável final
    final int AGE = 32;
    //Tente alterar a variável final
    AGE = 45;
    System.out.println("Idade: " + AGE);
  }
}

No programa acima, criamos uma variável final chamada age e tentamos alterar o valor da variável final.

Ao executar o programa, aparecerá a seguinte mensagem de erro, indicando erro de compilação.

não pode atribuir um valor à variável final AGE
    AGE = 45;
    ^

Atenção:É recomendável usar a forma maiúscula para declarar variáveis finais em Java.

2. Método final Java

Antes de entender métodos e classes finais, certifique-se de que você entendeHerança Java.

Em Java, o método final não pode ser overrides por subclasses. Por exemplo,

class FinalDemo {
    //Criar método final
    public final void display() {
      System.out.println("Este é o método final.");
    }
}
class Main extends FinalDemo {
  //Tentativa de reescrever método final
  public final void display() {
    System.out.println("Método final overrides.");
  }
  public static void main(String[] args) {
    Main obj = new Main();
    obj.display();
  }
}

No exemplo acima, criamos um método final chamado display() dentro da classe FinalDemo. Aqui, a classe Main herda a classe FinalDemo.

Tentamos overrides o método final na classe Main. Quando executamos o programa, aparecerá a seguinte mensagem de erro, indicando um erro de compilação.

 display() em Main não pode overrides display() em FinalDemo
  public final void display() {
                    ^
  método final overriding

3. Classe final Java

Em Java, a classe final não pode ser herdada por outra classe. Por exemplo,

final class FinalClass {}}
    //Criar método final
    public void display() {
      System.out.println("Este é um método final.");
    }
}
class Main extends FinalClass {
  //Tentativa de reescrever método final
  public void display() {
    System.out.println("Reescrever método final");
  }
  public static void main(String[] args) {
    Main obj = new Main();
    obj.display();
  }
}

No exemplo acima, criamos uma classe final chamada FinalClass. Aqui, tentamos herdar a classe final a partir da classe Main.

Ao executar o programa, aparecerá a seguinte mensagem de erro, indicando erro de compilação.

cannot inherit from final FinalClass
class Main extends FinalClass {
                   ^