In allegato il codice di test Java relativo alle modalità con cui il linguaggio effettua il dispatching.
Il setting del problema è il seguente:
- classe B + classe D che estende B
- classe T + classe W che estende T
B e D hanno un metodo foo con un parametro che può essere di tipo T o W --a seconda dello specifico file di test.
Occorre verificare che Java usi l'overriding e l'overloading così come ci si aspetta.
I risultati dei vari test servono quindi come verifica.
Per migliorare la comprensione del codice sorgente è stata adottata la seguente convenzione:
bb indica una variabile di classe B che referenzia un oggetto della stessa classe;
bd indica una variabile di classe B che referenzia un oggetto di classe D;
dd indica una variabile di classe D che referenzia un oggetto della stessa classe.
Come sapete, non ci possono essere variabili db ...
Stesso discorso per T e W.
Allego anche un file calc (libreoffice), e suggerisco di usarlo cosi:
1. provare ad prevedere quale metodo sarà attivato (e con quale meccanismo tra overriding e overloading) scrivendolo sul file calc (o a penna su una stampa del pdf corrispondente);
2. verificare poi se l'annotazione fatta corrisponde all'esito prodotto dal programma.
Il main è dentro il file TestAll.java. Per eventuali prove singole c'è anche un file TestOne.java ...
Il docente.
PS Dato che i vari file differiscono solo per pochi dettagli, sono stati otttenuti per copia-e-incolla. Chiedo la cortesia di segnalarmi via email eventuali "typo" dovuti proprio al copia-e-incolla.