Clase final en Java

Rupam Yadav 12 octubre 2023
Clase final en Java

Este tutorial trata el tema de la clase final con un ejemplo. El final es una palabra clave en Java que se puede usar en diferentes contextos con variables, métodos y clases.

Restringe el acceso en todos los contextos hasta cierto punto. Hablaremos de la clase final.

Use la clase final para restringir la clase en Java

Una clase con la palabra clave final se denomina clase final. Usamos la palabra clave final con una clase para restringir que la clase sea heredada por otras clases.

Hacemos la clase final cuando queremos asegurar cualquier extensión. Una de sus ventajas es la seguridad porque una clase final es inmutable, que no se puede cambiar.

En el siguiente ejemplo, tenemos dos clases. La primera clase ExampleClass1 tiene el método main(), mientras que en la segunda clase ExampleClass2, usamos la palabra clave final para convertirla en una clase final.

Cuando extendemos ExampleClass2 usando la palabra clave extends en ExampleClass1, obtenemos un error en la salida que dice que no podemos heredar una clase final.

class ExampleClass1 extends ExampleClass2 {
  public static void main(String[] args) {}
}

final class ExampleClass2 {
  int abc = 30;
}

Producción :

java: cannot inherit from final com.tutorial.ExampleClass2

No podemos extender una clase final, pero ¿y si queremos acceder a una propiedad o método de la clase?

Tenga en cuenta que la clase no se puede extender cuando se usa la palabra clave final, pero podemos crear su objeto para acceder a sus funciones y variables.

Hay dos clases en el ejemplo; una es la clase final ExampleClass2, mientras que se necesita otra clase ExampleClass1 para que se ejecute el método main().

Creamos un objeto de la clase ExampleClass2 y luego imprimimos el valor de abc, una variable entera.

Podemos acceder a la clase y su variable incluso cuando sea final porque no usamos la herencia aquí.

class ExampleClass1 {
  public static void main(String[] args) {
    ExampleClass2 exampleClass2 = new ExampleClass2();
    System.out.println(exampleClass2.abc);
  }
}

final class ExampleClass2 {
  int abc = 30;
}

Producción :

30
Rupam Yadav avatar Rupam Yadav avatar

Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.

LinkedIn