DEV Community

Usando final

Usando final em Java

Proteger métodos contra sobreposição:
O modificador final impede que um método seja sobreposto em subclasses.
Exemplo

class A {
    final void meth() {
        System.out.println("This is a final method.");
    }
}

class B extends A {
    // ERRO! Não pode sobrepor meth() porque é final
    void meth() {
        System.out.println("Illegal!");
    }
}

Enter fullscreen mode Exit fullscreen mode

Impedir a herança de uma classe:
Declarar uma classe como final impede que outras classes herdem dela.
Exemplo

final class A {
    // ...
}

// ERRO! Não é permitido herdar de uma classe final
class B extends A {
    // ...
}

Enter fullscreen mode Exit fullscreen mode

Usar final com membros de dados (variáveis):
O modificador final pode ser aplicado a variáveis, tornando-as constantes. O valor de uma variável final não pode ser alterado após sua atribuição inicial.
Exemplo

class ErrorMsg {
    final int OUTERR = 0;
    final int DISKERR = 2;

    String msgs[] = {
        "Output Error",
        "Disk Full"
    };

    // Retorna a mensagem de erro correspondente ao código
    String getErrorMsg(int i) {
        if(i >= 0 && i < msgs.length)
            return msgs[i];
        else
            return "Invalid Error Code";
    }
}

class FinalD {
    public static void main(String args[]) {
        ErrorMsg err = new ErrorMsg();
        System.out.println(err.getErrorMsg(err.OUTERR));
        System.out.println(err.getErrorMsg(err.DISKERR));
    }
}

Enter fullscreen mode Exit fullscreen mode

Convenção para constantes:

  • Embora não obrigatório, é uma prática comum usar identificadores em maiúsculas para constantes final, como mostrado no exemplo acima (OUTERR e DISKERR).
  • O modificador final em Java é útil para garantir a integridade de métodos, classes e variáveis, prevenindo sua alteração ou herança acidental em outras partes do código.

Image description

Top comments (0)