Java 8 鈥 M茅todos referenciados

m茅todos referenciadosLos m茅todos referenciados son una de las nuevas caracter铆sticas de Java 8 que nos permite hacer referencia a los m茅todos y constructores por medio de una interface funcional, dicho de otra manera, podemos implementar la funcionalidad de un m茅todo abstracto por medio de la implementaci贸n de un m茅todo ya implementado, asignando el m茅todo implementado al m茅todo abstracto. Esto puede resultar un tanto extra帽o, sobre todo porque Java era, hasta la versi贸n 8 un lenguaje demasiado estricto. (m谩s…)

Java 8 鈥 Interfaces funcionales

Interfaces funcionalesSe le conoce como interface funcional a toda aquella interface que tenga solamente un m茅todo abstracto, es decir puede implementar uno o m谩s m茅todos default, pero deber谩 tener forzosamente un 煤nico m茅todo abstracto. Si no te queda claro que es un m茅todo abstracto en una interface, es un m茅todo sin implementar.

Las interfaces funcionales es un nuevo concepto que fue agregado a partir de la versi贸n 8 de Java y cobran su importancia al utilizar expresiones lambda (位).

 

Ejemplo de interfaces funcionales:

 

A continuaci贸n, veremos ejemplos de dos interfaces funcionales v谩lidas: (m谩s…)

Java 8 鈥 Default Method

Default MethodUna de las novedades que trae Java 8 a nivel del lenguaje, son los Default Method o M茅todos default, los cuales permiten agregar m茅todos implementados en las interfaces. Antes de la versi贸n 8 de Java era totalmente imposible definirles cuerpo a los m茅todos de las interfaces ya que nos marcaba error de compilaci贸n.

 

Para agregar un m茅todo default solo ser谩 necesario marcar un m茅todo con el operador default聽, veamos un ejemplo de c贸mo se implementan:

 

 

Los m茅todos default se utilizan cuando es necesario implementar un cuerpo sin la necesidad de tener que implementar por separado una clase abstracta, adem谩s los m茅todos por default se pueden sobrescribir en caso de que la implementaci贸n por default no cumpla con lo que requerimos. Tenemos que resaltar que los m茅todos default no remplazan a las clases abstractas, pues estas 煤ltimas son mucho m谩s potentes, debido a que nos permiten definir propiedades a nivel de clase, constructores y m茅todos privados. Veamos una limitante de los m茅todos default:

(m谩s…)