Latest web development tutorials

Java 8 método predeterminado

Java 8 nuevas características Java 8 nuevas características


Java 8 nuevos métodos de interfaz por defecto.

En pocas palabras, el método por defecto es la interfaz puede ser implementada método y no requiere clase de implementación para aplicar sus métodos.

Estamos justo en frente del nombre del método para agregar una palabra clave por defecto para poner en práctica el método por defecto.

¿Por qué se debe esta función?

En primer lugar, antes de que la interfaz es una espada de doble filo, para el beneficio de lo abstracto en lugar de por defecto de programación específico es que cuando se necesita modificar la interfaz, la necesidad de modificar toda la clase que implementa la interfaz, la corriente de colecciones de Java marco 8 antes de que ningún método foreach, generalmente pensar en soluciones en JDK añadir nuevos métodos y aplicación de la interfaz correspondiente. Sin embargo, la versión ha sido liberado, no es al mismo tiempo la adición de nuevos métodos para la interfaz no afecta a las implementaciones existentes. Por lo tanto, la introducción del método predeterminado. Su propósito es resolver la modificación existente y la aplicación de la interfaz no es compatible con el problema.

gramática

La sintaxis del método por defecto es la siguiente:

public interface vehicle {
   default void print(){
      System.out.println("我是一辆车!");
   }
}

método por defecto múltiple

Interfaz tiene un método predeterminado, consideremos el caso, una clase implementa varias interfaces y estas interfaces tienen el mismo método por defecto, los siguientes ejemplos ilustran la solución para esta situación:

public interface vehicle {
   default void print(){
      System.out.println("我是一辆车!");
   }
}

public interface fourWheeler {
   default void print(){
      System.out.println("我是一辆四轮车!");
   }
}

La primera solución es crear su propio método predeterminado para anular el método predeterminado de reescribir la interfaz:

public class car implements vehicle, fourWheeler {
   default void print(){
      System.out.println("我是一辆四轮汽车!");
   }
}

La segunda solución se puede utilizar super para llamar a la interfaz método predeterminado especificado:

public class car implements vehicle, fourWheeler {
   default void print(){
      vehicle.super.print();
   }
}

método por defecto estática

Java 8 Otra característica es la interfaz puede declarar (y puede proporcionar una implementación) método estático. Por ejemplo:

public interface vehicle {
   default void print(){
      System.out.println("我是一辆车!");
   }
	// 静态方法
   static void blowHorn(){
      System.out.println("按喇叭!!!");
   }
}

El método por defecto del ejemplo

Podemos utilizar el código siguiente para obtener información sobre el método por defecto, puede colocar el archivo de código Java8Tester.java:

public class Java8Tester {
   public static void main(String args[]){
      Vehicle vehicle = new Car();
      vehicle.print();
   }
}

interface Vehicle {
   default void print(){
      System.out.println("我是一辆车!");
   }
	
   static void blowHorn(){
      System.out.println("按喇叭!!!");
   }
}

interface FourWheeler {
   default void print(){
      System.out.println("我是一辆四轮车!");
   }
}

class Car implements Vehicle, FourWheeler {
   public void print(){
      Vehicle.super.print();
      FourWheeler.super.print();
      Vehicle.blowHorn();
      System.out.println("我是一辆汽车!");
   }
}

Aplicación de la secuencia de comandos anterior, la salida es:

$ javac Java8Tester.java 
$ java Java8Tester
我是一辆车!
我是一辆四轮车!
按喇叭!!!
我是一辆汽车!

Java 8 nuevas características Java 8 nuevas características