Aún no tienes acceso a esta clase

Crea una cuenta y continúa viendo este curso

Curso de Java SE Orientado a Objetos

Curso de Java SE Orientado a Objetos

Anahí Salgado Díaz de la Vega

Anahí Salgado Díaz de la Vega

Interfaces en Java 8 y 9

30/38
Recursos

Las Interfaces nos permiten usar métodos abstractos y campos constantes para implementar herencia/polimorfismo de forma muy similar a las clases abstractas.

A partir de Java 8 podemos tener implementación en métodos para heredar y reutilizar diferentes comportamientos. No todos los métodos de nuestras interfaces deben ser abstractos, ahora podemos usar el modificador de acceso default y desde Java 9 también private.

Recuerda que el nivel de acceso de default y private son los mismos que estudiamos en clases anteriores.

public interface MyInterface {
  // Métodos default: nos permite heredar la definición
  // de la función y también su implementación...
  default void defaultMethod() {
    privateMethod("Hello from the default method!");
  }

  // Métodos private: nos permiten definir comportamiento,
  // pero solo se puede usar desde otras clases de esta
  // interfaz, no se hereda a la clase hija....
  private void privateMethod(final String message) {
    System.out.println(message);
  }

  // Métodos abstractos: recuerda que todos los métodos
  // son abstractos por defecto...
  void normalMethod();
}
Encapsulamiento: Modificadores de acceso

Aportes 25

Preguntas 6

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.

Con este cambio, la interfaz y la clase abstracta parecen ser practicamente lo mismo. Sin embargo, la interfaz sigue siendo una abstracción completa (diseñada para que se implementen todos los métodos). La posibilidad de crear métodos default parace obedecer únicamente a facilitar la actualización de las interfaces sin que esto rompa las clases que ya la implementaban con anterioridad.

Les comparto mis notas de esta Clase:

Interfaces en Java 8 y 9

La sintaxis de las interfaces cambio un poco a partir de Java 8 y 9.

  • Java 8
    Ya no todos los métodos tiene que ser abstractos pues se cuenta con un nuevo modificador de acceso para los métodos, default. Esto permite que los métodos dentro de una interfaz puedan tener implementación, y a su vez dicha implementación se puede reutilizar en cualquier Clase sin importar a que familia pertenezca. Este modificador default en las interfaces tiene las mismas reglas y restricciones que en en caso de los métodos convencionales, es decir puede ser accedido a nivel de la Clase y por Clases/Interfaces que estén dentro de otro paquete.

  • Java 9

    Se puede añadir el modificador de acceso private a los métodos de una Interfaz. Este modificador tiene las mismas restricciones que en el caso de los métodos convencionales, es decir, sólo puede ser accedido a nivel de la Clase. También permite hacer una implementación en el método de una Interfaz.

public interface MyInterface {
    default void defaultMethod() {
        privateMethod("Hello from the default method!")
    }
    
    private void privateMethod(final String string) {
        System.out.println(string);
    }
    
    void normalMethod();
}

Este tipo de interfaces son muy útiles al trabajar con bases de datos.

ejale 😃 a modularizar se a dicho 😃

☕ De Java 8 para adelante podemos usar el modificador de acceso default en nuestras interfaces, pero desde Java 9 también private.

Muchas gracias por explicar cómo afectan los modificadores de acceso a las interfaces, cuando vayamos a utilizarlos en operaciones con las bases de datos se podrá apreciar esta característica.

🤯 Esto abre un mundo de posibilidades a la hora de modularizar y estandarizar el código.

Gracias, excelente contendió. Como siempre





Excelente!

muy buena explicacion

Muy buena clase 😄 ❤️

Genial! Buena información!

Al parecer con esto las interfaces permiten tener metodos que son mas fáciles de acceder sin tener que obligatoriamente que implementarlo en las clases que la usen.

Muy bien explicado las interfaces con las actualizaciones de Java 8 y 9, excelente como siempre Anahí

Una interfaz es algo así como la tabla que sale en una relación muchos a muchos en bases de datos o estoy equivocado.

ok todo muy claro con interfaces cree los Dialog en Android Studio

Sigamos.

El principal objetivo del default es para dar soporte a backward compatibility.

**Interfaces Java 8:**

Además de métodos abstractos, una interfaz puede incluir dos tipos de métodos:

**- Métodos por defecto: **
Estos métodos se declaran con el modificador default. Si una clase implementa una de estas interfaces, sería como si heredase los métodos por defecto de ella, no tiene la obligación de implementarlo
**

  • Métodos estáticos**
    Los métodos estáticos están asociados únicamente a la interfaz, las clases que implementan la interfaz no los heredan, por lo que no podrán ser llamados con el nombre de la clase o con una referencia a un objeto de la misma, solo con el nombre de la interfaz

excelente explicacion

las nuevas características de las interfaces en las versiones 8 y 9 de java, resultan ser muy interesantes.

Las bases de datos nos abrirán los ojos.

Las interfaces son como un conjunto o paquete de metodos?