Cómo utilizar métodos predeterminados en java

A pesar de que las interfaces son una característica muy útil de Java, tienen una limitación inherente: Después de definir una interfaz y luego construir las clases que implementan la interfaz, no hay manera fácil de modificar la interfaz mediante la adición de métodos adicionales a la misma.

Por ejemplo, supongamos que ha creado la siguiente interfaz:

interfaz pública reproducibles {void play () -}

A continuación, construir varias clases que implementan esta interfaz. Aquí está un ejemplo sencillo:

Juego de clase implementa reproducibles {juego public void () {System.out.println ("¡Buena suerte!") -}}

Este es un juego bastante inútil, por supuesto- simplemente imprime el mensaje “Buena suerte!” Cada vez que el jugar método se llama.

Video: Tutoriales Java - 39 Metodos " Set && Get "

Ahora supongamos que usted decide que la Interpretable interfaz debe tener una características adicionales - en concreto, que desea añadir la capacidad de terminar el juego llamando a un método llamado dejar.

Se podría tener la tentación de simplemente añadir el nuevo método a la interfaz existente, así:

Video: Ejercicios Java 1 - Recorrer String (substring)

interfaz pública reproducibles {void play () - vacío quit () -}

Desafortunadamente, sin embargo, si lo hace romper el Juego clase, ya que no proporciona una implementación de la dejar método.

Se podría, por supuesto, modificar el Juego clase mediante la adición de una implementación de la dejar método. Pero lo que si usted ha escrito docenas o incluso cientos, de clases que implementan Interpretable? Como se puede imaginar, una vez que la interfaz ha llegado a ser popular, se hace casi imposible de modificar.

Para aliviar este problema, Java 1.8 introduce un nuevo tipo de método de interfaz llamado método por defecto, que suministra código que se utiliza como la aplicación del método de las clases que implementan la interfaz, pero que no ofrezcan una implementación para el método predeterminado.

Por lo tanto, Java 8 le permite añadir de forma segura el dejar método para la Interpretable interfaz especificando como un método predeterminado, como este:

interfaz reproducibles {void play () - vacío predeterminado quit () {System.out.println ("Lo sentimos, no se permite dejar de fumar.") -}}

Aquí el Interpretable interfaz especifica que si una clase de implementación no proporciona una implementación de la dejar método, se utilizará el método por defecto. En este caso, el método por defecto simplemente imprime el mensaje “En este momento, no se permite dejar de fumar.”

Tenga en cuenta que el ejemplo anterior no se compilará en versiones de Java anteriores a 1.8. Si recibe un mensaje de error cuando intenta compilar una interfaz que utiliza el defecto palabra clave, comprobar su versión de Java para asegurarse de que está ejecutando la versión 1.8 o posterior.

Aquí está un ejemplo completo que utiliza el Interpretable interfaz y su método por defecto:

TestLambdaCollection public class {void main (String [] args) {public static Juego g = new juego () - g.play () - g.quit () -}} interfaz reproducibles {void play () - vacío predeterminado quit () {System.out.println ("Lo sentimos, no se permite dejar de fumar.") -}} clase Juego implementa reproducibles {juego public void () {System.out.println ("¡Buena suerte!") -}}

Cuando se ejecuta este programa, se mostrará lo siguiente en la consola:

! Buena suerte este momento, dejar de fumar no está permitido.
Artículos Relacionados