In generale NO e ti spiego il motivo:Originariamente inviato da bircastri
ti rispondo alla seconda domanda si
se tu hai un veicolo v inizializzato in un momento t, se dopo 10 istruzioni fai
assegni a fiat il riferimento di v. Significa che adesso hai 2 contenitori (variabili) che puntano (passami il termine) allo stesso oggetto.codice:Macchina fiat = v;
ma se tu fai
a fiat assegni un riferimento ad un oggetto di tipo veicolo, che non è lo stesso di v!!Adesso in memoria hai 2 oggetti di tipo veicolo referenziati da 2 variabili.codice:Veicolo v = new Veicolo(); //dopo un po' Macchina fiat = new Veicolo();
Anche quando fai
qui hai in fiat un riferimento ad un'istanza pulita (appena nata) di veicolo, in memoria hai un solo oggetto, ma 2 riferimenti vi puntano.codice:Veicolo v = new Veicolo(); Macchina fiat = v;
Riepilogando: l'assegnamento (fiat = v)comporta 2 riferimenti che puntano allo stesso oggetto, il new comporta avere 2 riferimenti che puntano ad oggetti differenti.
Riguardo la prima domanda, l'esercizio vuole farti degli esempi su ereditarietà e polimorfismo

Rispondi quotando