Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2002
    Messaggi
    655

    [JAVA] Dubbio estensione interfacce

    Se ho una interfaccia A e voglio serializzarla non posso fare A implements Serializable ma devo fare A extends Serializable giusto? E questo vale solo per le interfacce!?

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    328
    sì per entrambe.
    Il programmatore lo vedi dal coraggio, dall'altruismo, dalla fantasia...

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    328
    Comunque non ha molto senso serializzare un'interfaccia... Non hai informazioni di stato da serializzare, cosa la serializzi a fare?
    Al massimo, avendo un'interfaccia che estende Serializable, avrai che tutte le classi che implementano quell'interfaccia sono anche Serializable (il che non significa per forza che siano davvero serializzabili, ma quello è un altro discorso).
    Il programmatore lo vedi dal coraggio, dall'altruismo, dalla fantasia...

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2002
    Messaggi
    655
    Originariamente inviato da Pablob
    Comunque non ha molto senso serializzare un'interfaccia... Non hai informazioni di stato da serializzare, cosa la serializzi a fare?
    Al massimo, avendo un'interfaccia che estende Serializable, avrai che tutte le classi che implementano quell'interfaccia sono anche Serializable (il che non significa per forza che siano davvero serializzabili, ma quello è un altro discorso).
    Non ci siamo capiti, quello che io chiedo è che una interfaccia si implementa , non si estende giusto?
    Allora perchè se provo ad implementare l'interfaccia A con Serializable ho errore mentre se la estendo tutto va bene?

  5. #5
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Perchè se stai costruendo un'interfaccia allora non hai una vera e propria classe (che quindi può implementare un'interfaccia), ma puoi solo estendere un'altra interfaccia, intendendo così che l'interfaccia che stai definendo estende l'altra.

    Un'interfaccia non può implementare proprio nulla!

    Aggiungo: secondo me non ha proprio senso estendere un'interfaccia (se non in rarissimi casi). Le interfaccie servono per permettere in qualche modo l'ereditarietà multipla...


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2002
    Messaggi
    655
    Ma cosi facendo tutte le classi che implementeranno la mia interfacci saranno serializzabili o no? E perchè è sbagliato?

  7. #7
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Sì... se la tua interfaccia estende Serializable, tutte le classi che la implementano saranno Serializable (e questo è giusto per l'ereditarietà).

    Cos'è che sarebbe sbagliato?


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  8. #8
    Utente di HTML.it
    Registrato dal
    Jul 2002
    Messaggi
    655

    Aggiungo: secondo me non ha proprio senso estendere un'interfaccia (se non in rarissimi casi).
    Non mi era chiara questa affermazione

  9. #9
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Ah, ok.
    Dicevo che secondo me estendere un'interfaccia non ha molto senso perchè una classe può implementare quante interfacce vuole. Una gerarchia di ereditarietà fra interfaccie non ha tanto senso, se non, appunto, in rarissimi casi (dovuti, per lo più, a evoluzioni successive di un'interfaccia esistente). L'interfaccia, infatti, prevede solo dei metodi che una cerca classe deve implementare... avere un'interfaccia che ne estende un'altra non porta ad avere tanti pregi, quanto pittosto rende difficoltoso il lavoro al programmatore che, quando implementa un'interfaccia in una classe, deve implementare anche dei metodi che riguardano le interfaccie madri.

    E' molto più semplice lasciare le interfaccie separate e costruire le classi implementando solo quelle utili:
    codice:
    public class MiaClasse implements Interfaccia1, Interfaccia2, ... InterfacciaN {
       ...
    }
    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.