Java 8 e i "default methods" delle interfacce

di il
3 risposte

Java 8 e i "default methods" delle interfacce

Salve a tutti,
qualcuno di voi ha sentito parlare dei cosiddetti "default methods"?
Sono stati introdotti in Java 8 o erano già presenti nelle versioni meno recenti?
Mi piacerebbe saperne di più.
Da quello che ho capito adesso non c'è più molta differenza tra una classe astratta e un'interfaccia a parte la questione dell'ereditarietà multipla.

3 Risposte

  • Re: Java 8 e i "default methods" delle interfacce

    Salve xneo,

    xneo ha scritto:


    qualcuno di voi ha sentito parlare dei cosiddetti "default methods"?
    se leggi il mio post su http://www.iprogrammatori.it/forum-programmazione/java/java-default-interface-methods-t23051.html#p8528313 vedrai che anch'io cercavo l'opinione altrui e quindi per ora siamo in due.

    xneo ha scritto:


    Sono stati introdotti in Java 8 o erano già presenti nelle versioni meno recenti?
    Mi piacerebbe saperne di più.
    I default methods sono una novità di Java 8 (fonte Oracle) e servono ad evitare di ottenere metodi vuoti di una classe che implementi una certa interfaccia. Ad esempio basta pensare all'accoppiata KeyListener / KeyAdapter del package java.awt.event dove KeyAdapter ha appunto solo metodi vuoti.

    xneo ha scritto:


    Da quello che ho capito adesso non c'è più molta differenza tra una classe astratta e un'interfaccia a parte la questione dell'ereditarietà multipla.
    Sembra che sia così anche se come mostrato nel mio esempietto occorre fare attenzione ad estendere un'interfaccia da più interfacce.
    Ciao
  • Re: Java 8 e i "default methods" delle interfacce

    Non avevo visto la tua discussione, scusami.

    In effetti con i default method le "abstract classes" sono minacciate dalle interfacce.

    Mi spiego:
    Se io devo usare una classe astratta perchè ho bisogno di un'implementazione di alcuni metodi,
    come ad esempio i vari "event adapter", potrei usare le interfacce con questa nuova funzionalità in modo da poter usufruire dell'ereditarietà multipla.
  • Re: Java 8 e i "default methods" delle interfacce

    Ciao xneo,

    xneo ha scritto:


    In effetti con i default method le "abstract classes" sono minacciate dalle interfacce.
    Per come la vedo io solo gli Adapter e non tutte le "abstract classes". Comunque sia le classi possono avere anche membri non pubblici, mentre le interfacce solo public.

    In fin dei conti c’è poco da discutere; attualmente i vari listener non hanno default methods e ciò che vorrà fare Oracle in futuro non si sa.
Devi accedere o registrarti per scrivere nel forum
3 risposte