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!?
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!?
sì per entrambe.
Il programmatore lo vedi dal coraggio, dall'altruismo, dalla fantasia...
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...
Non ci siamo capiti, quello che io chiedo è che una interfaccia si implementa , non si estende giusto?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).
Allora perchè se provo ad implementare l'interfaccia A con Serializable ho errore mentre se la estendo tutto va bene?
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
Ma cosi facendo tutte le classi che implementeranno la mia interfacci saranno serializzabili o no? E perchè è sbagliato?
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
Non mi era chiara questa affermazione
Aggiungo: secondo me non ha proprio senso estendere un'interfaccia (se non in rarissimi casi).
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:
Ciao.codice:public class MiaClasse implements Interfaccia1, Interfaccia2, ... InterfacciaN { ... }![]()
"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