Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Industrial programming >> Java

Java 8 - Métodos predeterminados

Java 8 introduce un nuevo concepto de implementación de métodos predeterminados en las interfaces. Esta capacidad se agrega para la compatibilidad con versiones anteriores, de modo que las interfaces antiguas se puedan usar para aprovechar la capacidad de expresión lambda de Java 8.

Por ejemplo, las interfaces 'Lista' o 'Colección' no tienen declaración de método 'forEach'. Por lo tanto, agregar dicho método simplemente romperá las implementaciones del marco de la colección. Java 8 introduce el método predeterminado para que la interfaz Lista/Colección pueda tener una implementación predeterminada del método forEach, y la clase que implementa estas interfaces no necesita implementar lo mismo.

Sintaxis

public interface vehicle {

   default void print() {
      System.out.println("I am a vehicle!");
   }
}

Múltiples valores predeterminados

Con funciones predeterminadas en las interfaces, existe la posibilidad de que una clase esté implementando dos interfaces con los mismos métodos predeterminados. El siguiente código explica cómo se puede resolver esta ambigüedad.

public interface vehicle {

   default void print() {
      System.out.println("I am a vehicle!");
   }
}

public interface fourWheeler {

   default void print() {
      System.out.println("I am a four wheeler!");
   }
}

La primera solución es crear un método propio que anule la implementación predeterminada.

public class car implements vehicle, fourWheeler {

   public void print() {
      System.out.println("I am a four wheeler car vehicle!");
   }
}

La segunda solución es llamar al método predeterminado de la interfaz especificada usando super.

public class car implements vehicle, fourWheeler {

   public void print() {
      vehicle.super.print();
   }
}

Métodos predeterminados estáticos

Una interfaz también puede tener métodos auxiliares estáticos desde Java 8 en adelante.

public interface vehicle {

   default void print() {
      System.out.println("I am a vehicle!");
   }
	
   static void blowHorn() {
      System.out.println("Blowing horn!!!");
   }
}

Ejemplo de método predeterminado

Cree el siguiente programa Java utilizando cualquier editor de su elección en, por ejemplo, C:\> JAVA.

Java8Tester.java

Demostración en vivo
public class Java8Tester {

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

interface Vehicle {

   default void print() {
      System.out.println("I am a vehicle!");
   }
	
   static void blowHorn() {
      System.out.println("Blowing horn!!!");
   }
}

interface FourWheeler {

   default void print() {
      System.out.println("I am a four wheeler!");
   }
}

class Car implements Vehicle, FourWheeler {

   public void print() {
      Vehicle.super.print();
      FourWheeler.super.print();
      Vehicle.blowHorn();
      System.out.println("I am a car!");
   }
}

Verificar el resultado

Compile la clase usando javac compilador de la siguiente manera -

C:\JAVA>javac Java8Tester.java

Ahora ejecute Java8Tester de la siguiente manera -

C:\JAVA>java Java8Tester

Debería producir el siguiente resultado -

I am a vehicle!
I am a four wheeler!
Blowing horn!!!
I am a car!

Java

  1. Operadores Java
  2. Comentarios Java
  3. Java para cada bucle
  4. Cadenas Java
  5. Clase abstracta de Java y métodos abstractos
  6. Interfaz Java
  7. Clase anónima de Java
  8. Prueba de Java con recursos
  9. Anotaciones Java
  10. Aserciones de Java
  11. Métodos Java String toLowercase() y toUpperCase()