Il principio della ereditarietà/polimorfismo consente una cosa che si può descrivere con una semplice frase:
Ovunque è richiesto un tipo X, è lecito passare/assegnare un tipo esattamente X oppure un sottotipo di X
Questo vuol dire che un oggetto Integer può essere assegnato ad una variabile Number (Integer deriva da Number, quindi è-un Number)
Number n = new Integer(123);
Se un metodo è prova(Object obj) io posso invocarlo passando es. un String:
xyz.prova("ciao");
E se Treno ha un metodo public void aggiungiVagone(Vagone v) allora posso invocarlo passando ad esempio un oggetto VagonePasseggeri:
VagonePasseggeri vp = new VagonePasseggeri( ...... );
unTreno.aggiungiVagone(vp);
Tutto questo "funziona così", è dato proprio dalla ereditarietà/polimorfismo!
Tutto questo infatti VA capito bene, fin dall'inizio. Garantisco che senza queste nozioni, in Java (come in qualunque altro linguaggio "ad oggetti"), non si va molto lontano ....![]()


Rispondi quotando