El método predeterminado en Java es un método en Java que se define dentro de la interfaz con la palabra clave predeterminada que se conoce como el método predeterminado. Es un tipo de método no abstracto.
Este método es capaz de agregar capacidad hacia atrás para que la interfaz anterior pueda captar la capacidad de expresión lambda.
El método predeterminado de la interfaz Java también se conoce como método Defender o método de extensión virtual.
Las interfaces solo podían tener métodos abstractos antes de Java 8. Las clases proporcionan por separado la implementación de estos métodos. superar
¿Podemos anular el método predeterminado en Java?
No es obligatorio anular el método predeterminado en Java.
Si estamos usando solo una interfaz en un programa, entonces estamos usando solo un único método predeterminado y en ese momento no se requiere anular como se muestra en el siguiente programa:
Java
// Creating Interface interface GfG{ public default void display() { System.out.println("GEEKSFORGEEKS"); } } // Main Class With Implementation Of Interface public class InterfaceExample implements GfG{ public static void main(String args[]) { InterfaceExample obj = new InterfaceExample(); // Calling Interface obj.display(); } }
GEEKSFORGEEKS
Pero cuando se usan más de dos interfaces y ambas actúan como clase principal, en ese momento se requiere la anulación del método predeterminado. Si estamos usando más de una interfaz y en ambas interfaces, si ambas interfaces tienen el mismo nombre y la misma estructura. Entonces, en ese momento, uno debe anular cualquiera de los dos métodos predeterminados; de lo contrario, se producirá un error.
Caso 1: cuando dos interfaces no se anulan
Java
// Java program to demonstrate the case when // two interfaces are not overridden // Creating Interface One interface GfG{ public default void display() { System.out.println("GEEKSFORGEEKS"); } } // Creating Interface Two interface gfg{ public default void display() { System.out.println("geeksforgeeks"); } } // Interfaces are not Overidden public class InterfaceExample implements GfG,gfg { public static void main(String args[]) { InterfaceExample obj = new InterfaceExample(); obj.display(); } }
Producción:
InterfaceExample.java:18: error: types GfG and gfg are incompatible; public class InterfaceExample implements GfG,gfg { ^ class InterfaceExample inherits unrelated defaults for display() from types GfG and gfg 1 error
Caso 2: cuando se anulan dos interfaces
Java
// Java program to demonstrate the case // when two interfaces are overridden // Creating Interface One interface GfG{ public default void display() { System.out.println("GEEKSFORGEEKS"); } } // Creating Interface Two interface gfg{ public default void display() { System.out.println("geeksforgeeks"); } } public class InterfaceExample implements GfG,gfg { // Interfaces are Overrided public void display() { GfG.super.display(); gfg.super.display(); } public static void main(String args[]) { InterfaceExample obj = new InterfaceExample(); obj.display(); } }
GEEKSFORGEEKS geeksforgeeks
Publicación traducida automáticamente
Artículo escrito por jagroopofficial y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA