Ciao ..
se non ho capito male 'super' in un costruttore serve per richiamare il costruttore della classe padre
e questo è un esempio:
domandina ..codice:class Veicolo // extends Object { private int NumeroPosti; public Veicolo(int NP) // costruttore { NumeroPosti = NP; } public int getNumeroPosti() { return NumeroPosti; } } class VeicoloTerrestre extends Veicolo { private int NumeroRuote; public VeicoloTerrestre(int NP, int NR) // costruttore { super(NP); // chiama il costruttore del padre */ NumeroRuote = NR; } public int getNumeroRuote() { return NumeroRuote; } } class VeicoloMarino extends Veicolo { private long Stazza; public VeicoloMarino(int NP, long S) { super(NP); Stazza = S; } public long getStazza() { return Stazza; } } ----> main public class Esempio3 { public static void main(String args[]) { VeicoloTerrestre MiaMacchina; VeicoloMarino MiaNave; MiaMacchina = new VeicoloTerrestre(5, 4); System.out.println("La mia macchina ha " + MiaMacchina.getNumeroPosti() + " posti e " + MiaMacchina.getNumeroRuote() + " ruote"); MiaNave = new VeicoloMarino(10, 10); System.out.println("La mia nave ha " + MiaNave.getNumeroPosti() + " posti e " + "una stazza di " + MiaNave.getStazza()); } }
'super' ha senso solo se la classe 'Veicolo' ha una sola proprietà !
diversamente come ci si dovrebbe comportare ?
ahh .. un'altra cosetta ..
perchè 'NumeroPosti' (come anche 'NumeroRuote' e 'Stazza') è dichiarata 'private', visto che io ho il main in un altro file ?
Grazie mille


Rispondi quotando