Ragazzi sono un po' disperato...la proff durante il corso di Linguaggi di Programmazione ha parlato delle regole di covarianza e di controvarianza...argomento trattato l'ultima lezione...forse l'unico su cui proprio non c'ho capito una mazza...ho provato a documentarmi ma niente...non m'entra....mi date una manina?
1) A che servono tali regole? (da quello che ho capito vengono usate per forzare i metodi...nel senso ho un metodo nella classe padre...lo ridefinisco con la stessa signature in una classe figlio....o qualcosa del genere)
2) Come si fà questo esercizio? (sono totalmente impallato...non saprei minimamente che risponderle su questo...)
Si consideri un generico linguagio polimorfico, la cui sintassi coincide con quella del linguaggio Java e che utilizza le regole della covarianza e della controvarianza per la forzatura dei metodi. Siano, in tale linguaggio, T1, T2 e T3 tre tipi di dato ed S1, S2 ed S3, rispettivamente, un sottotipo di T1, un sottotipo di T2 ed un sottotipo di T3.
In T1 sia definito il metodo di prototipo: T2 calcola(S3) ed in S1 sia definito il metodo di prototipo: S2 calcola(T3).
Mostrare perchè il metodo calcola definito in S1 è una forzatura (overriding) del metodo calcola definito in T1
Please save me![]()
Ciao
Andrea