Questo è considerato upcasting corretto?Quando e perché vorresti trasmettere un oggetto?
Derived d = new Derived();
Base b = d; // Always OK.
Perché qualcuno dovrebbe essere emarginato? Quando? È perché dobbiamo trasformare l'oggetto nella classe base in modo che non abbia la funzionalità della classe derivata?
Come appare questo codice in memoria? La classe derivata crea un'istanza e la memoria viene creata per quell'oggetto. Quindi viene creato un oggetto di classe base che fa riferimento a d
ora.
Sono utili, perché a volte non ti interessa quello che sei oggetto 'Derivato', hai solo bisogno di metodi generici in 'Base', per esempio per oggetti DB, dove devi salvare, che è lo stesso per tutti gli oggetti DB, a prescindere dagli altri dettagli – PostMan