Dispensa in PDF - Dipartimento di Scienze Ambientali, Informatica e ...
Dispensa in PDF - Dipartimento di Scienze Ambientali, Informatica e ...
Dispensa in PDF - Dipartimento di Scienze Ambientali, Informatica e ...
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Figura 7.11. B ere<strong>di</strong>ta dalla classe A<br />
Carnielli Efrem: Programmazione a componenti<br />
f<br />
A<br />
g<br />
B<br />
Def<strong>in</strong>izione ed uso <strong>di</strong> classi, oggetti ed <strong>in</strong>terfacce<br />
Pren<strong>di</strong>amo un oggetto p istanza <strong>di</strong> A e o istanza <strong>di</strong> B.<br />
L’oggetto p ha come <strong>in</strong>terfaccia {f} mentre o ha come <strong>in</strong>terfaccia {f,g} perchè la<br />
classe B ere<strong>di</strong>ta da A.<br />
Sia o che p implementano f per cui {f} è sia <strong>in</strong>terfaccia <strong>di</strong> o che <strong>di</strong> p.<br />
Sono <strong>di</strong> più gli oggetti che implementano f e g oppure quelli che implementano<br />
solo f? Per {f,g} ho solo o, per {f} sia o che p.<br />
Sebbene {f} sia contenuto <strong>in</strong> {f,g}, gli oggetti che implementano l’<strong>in</strong>terfaccia {f} sono<br />
maggiori, perchè ci sono meno restrizioni.<br />
Data un’<strong>in</strong>terfaccia I, il tipo ΤI è def<strong>in</strong>ito come:<br />
ΤI è l’<strong>in</strong>sieme degli oggetti che implementano le operazioni <strong>di</strong> I.<br />
TI={ogg|ogg implementa I}<br />
T{f}={ogg|ogg implementa {f}} = {p,o}<br />
T{f,g}={ogg|ogg implementa {f,g}} = {o}<br />
T{f}= TA tipo <strong>di</strong> A<br />
T{f,g}= TB tipo <strong>di</strong> B<br />
Così ho def<strong>in</strong>ito il tipo delle classi.<br />
TA <strong>in</strong>sieme <strong>di</strong> oggetti istanza <strong>di</strong> A.<br />
TB <strong>in</strong>sieme <strong>di</strong> oggetti istanza <strong>di</strong> B.<br />
TA ≥ TB cioè TB è sottotipo <strong>di</strong> TA anche se {f} è contenuto <strong>in</strong> {f,g}.<br />
Più grande è l’<strong>in</strong>sieme <strong>di</strong> funzioni e più grande è il numero <strong>di</strong> requisiti, più piccolo<br />
è l’<strong>in</strong>sieme che li può sod<strong>di</strong>sfare più piccolo è il tipo associato.<br />
175