Sigueme en Facebook Sigueme en Twitter Sigueme en Instagram Sigueme en Youtube
JC Mouse Bolivia
Index / Java / Default Methods

Default Methods

Autor jc mouse viernes, abril 5, 2019

Uno de los cambios principales introducidos a las interfaces en  Java 8 fue que estos puedan tener métodos concretos, es decir, métodos con cuerpo y métodos abstractos, esto con el fin de ayudar a los desarrolladores de APIs de Java a actualizar y mantener las interfaces.

Estos métodos deben ser declarados como métodos «default«. Pero veamos mejor con un ejemplo este tipo de métodos.

Esta es una interface típica sin métodos default

public interface InterfaceSinDefault {    
    
    public void caminar();
    
}

Ahora una interface que implementa un método default

public interface InterfaceConDefault {

    public void caminar();

    default void saluda() {
        System.out.println("Hola a todos!!!");
    }   
    
}

Claramente podemos advertir la presencia del método default ya que esta inicia con la palabra reservada default y si o si debe estar implementado, en este ejemplo, imprime un saludo por consola.

Implementación

Toda clase que implemente nuestra interface con el método default hereda este método por lo tanto, no debemos sobre escribirlo, si lo haces (que si se puede), dejara de ser un método default.

public class MiClase implements InterfaceConDefault {
    
    public static void main(String[] args) {
        MiClase miClase = new MiClase();
        miClase.caminar();
        miClase.saluda();
    }

    @Override
    public void caminar() {
        System.out.println("caminando por el parque");
    }
    
}

Y tenemos:

default

pero…

¿Que pasa si dos o más interfaces tienen métodos con el mismo nombre?

No podremos implementarlas ya que el propio compilador se encargara de alertarnos:

error compiler

Sin embargo podríamos sobrescribir el método default de cualquier interface, pero claro, como dijimos más arriba, este dejaría de se un método default, es decir:

    @Override
    public void saluda(){
        InterfaceConDefault.super.saluda();
    }

Como dijimos al principio se introdujeron este tipo de métodos para agregar características adicionales a las interfaces actuales sin interrumpir sus implementaciones existentes. Por ejemplo tenemos a stream() es un método default que se agrega a la interface Collection en Java 8. Si stream() se hubiera agregado como método abstracto, entonces todas las clases que implementan la interface Collection deberían haber implementado el método stream() algo que habría traído muchos problemas. En conclusión fue un movimiento inteligente para evolucionar la API.

enjoy!!!

Tags

Si te ha gustado podrías compartirlo o dejar un comentario. ¡Muchas gracias!
Autor: JC Mouse

Yo soy yo :) JC Mouse, Soy orgullosamente boliviano soy fundador y CEO de la web jc-Mouse.net uno de las pocas web en emprendimiento y tecnología en Bolivia.

Toda la información que encuentres en este sitio es y sera completamente gratis siempre, puedes copiar, descargar y re-publicar si así lo deseas en otros blogs o sitios web, solo te pido a cambio que dejes una referencia a esta web. Esto nos ayuda a crecer y seguir aportando. Bye

Enjoy! :)

También Te Podría Interesar

DOM4J: Creación de archivos XML

DOM4J: Creación de archivos XML

DOM4J es una de las librerías para java más populares para el trabajo con XML ya que nos permite crea, editar y leer doc...

MAUS :- Simulador y Editor de exámenes para dispositivos móviles

MAUS :- Simulador y Editor de exámenes para dispositivos móviles

MAUS es una aplicación para dispositivos móviles con el Sistema Operativo Android que te permite realizar exámenes desde...

Encriptación simétrica en java

Encriptación simétrica en java

En este post veremos un ejemplo sencillo de encriptación/desencriptación simétrica que el API de Java nos permite realiz...

Incrustar reporte en formulario java

Incrustar reporte en formulario java

Jasperreport nos brinda su propio visor de reportes, sin embargo en ocasiones queremos mostrar los informes directamente...

«Hola Mundo» con Android Studio y Kotlin

«Hola Mundo» con Android Studio y Kotlin

Kotlin es un lenguaje de programación relativamente nuevo que ha ido ganando terreno en el desarrollo de aplicaciones pa...

Como saber el tipo de objeto que contiene un hashmap

Como saber el tipo de objeto que contiene un hashmap

La clase hashMap es muy util para almacenar objetos de la forma ( Clave, Objeto ), donde Clave es un identificador único...

Comparte lo que sabes

Categorias

Últimas entradas

Los archivos digitales (txt, docx, xlsx, odt, odp, pdf, etc) nos permiten almacenar información el cual en ocasiones, de...

En este post crearemos un botón swing que reproducirá un sonido cuando este sea presionado por el usuario.  Sin mas que...

Muchas veces necesitamos de fotos para adornar nuestros perfiles en RRSS pero no queremos subir nuestras propias fotos p...

En esta ocasión aprenderemos a conectaros con una base de datos Oracle desde Laravel. Es un tutorial sencillo y cortito,...

Herramientas

Generador de Enlaces a Whatsapp