El método final en Java se puede extender, pero junto con el concepto principal que se debe tener en cuenta, extender significa que puede extender o no esa clase en particular que tiene el método final, pero no puede anular ese método final. Un caso más en el que no puede extender ese método final es que la clase que contiene el método final también es una clase final.
Enfoques:
Aquí discutiremos dos enfoques para satisfacer lo que acabamos de decir para descubrir cómo se extiende el método final.
- Sin anular
- Con anulación
Implementación:
- La clase ‘GFGParent’ tiene un método final llamado aleatoriamente ‘dataDisplay()’ que se crea aquí como el método final.
- La clase ‘GFG’ extiende GFGParent pero el programa se ejecuta sin ningún error, por lo tanto, podemos extender un método final pero no podemos anularlo.
- Aquí, si hubiera hecho que la clase GFGParent fuera final, tampoco extenderá el método final ya que no podemos heredar las clases finales.
Ejemplo 1
Java
// Java Program to Illustrate Final Method Extension // Importing input output classes import java.io.*; // Class 1 // Child class // Main class class GFG extends GFGParent { // Main driver method public static void main (String[] args) { // Print statement System.out.println("GFG!"); // Creating an object of parent class in child class // inside the main() method GFGParent gfg = new GFGParent(); // Calling the method created in parent class gfg.dataDisplay(); } } // Helper class // Parent class class GFGParent { public final void dataDisplay () { System.out.println("Data Structure"); } }
GFG! Data Structure
Ejemplo 2
El único cambio que haremos aquí es que simplemente estamos tratando de anular el método dentro de la clase secundaria.
Java
// Java Program to Illustrate Final Method Extension // Where method Overrides // Importing input output classes import java.io.*; // Class 1- Parent class class GFGParent { // Method inside parent class public final void dataDisplay() { System.out.println("Data Structure"); } } // Class 2 // Child class // Main class class GFG extends GFGParent { // Method 1 // Created in order to illustrate overridden method/s public final void dataDisplay() { // Print statement whenever this message is called System.out.println("Data Structure 2"); } // Method 2 // Main driver method public static void main(String[] args) { // Print statement System.out.println("GFG!"); // Creating an object of parent class and // calling method of child class over it. GFGParent gfg = new GFGParent(); gfg.dataDisplay(); } }
Salida: Genera un error en tiempo de compilación.
Publicación traducida automáticamente
Artículo escrito por rajatagrawal5 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA