15.06.2013 Views

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 ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Carnielli Efrem: Programmazione a componenti<br />

Def<strong>in</strong>izione ed uso <strong>di</strong> classi, oggetti ed <strong>in</strong>terfacce<br />

<strong>in</strong> comune. Per cui C e B devono avere funzioni <strong>di</strong>verse. Basta <strong>in</strong><br />

sostanza che non implement<strong>in</strong>o gli stessi meto<strong>di</strong>. L’idea è quella che<br />

una classe ere<strong>di</strong>ta <strong>in</strong>terfacce da una superclasse e implementazioni da<br />

molte superclassi. Le ultime classi sono chiamate mix<strong>in</strong> e sono usate<br />

per mescolare frammenti d’implementazioni <strong>in</strong> un unica classe.<br />

• Un altro modo è quello <strong>di</strong> avere un ord<strong>in</strong>e gerarchico sulle classi.<br />

L’ere<strong>di</strong>tà multipla <strong>di</strong> <strong>in</strong>terfaccia della seguente figura è <strong>in</strong>vece concessa.<br />

f<br />

g<br />

f<br />

g<br />

h<br />

<br />

<br />

C<br />

Figura 7.17. Ere<strong>di</strong>tarietà multipla <strong>di</strong> <strong>in</strong>terfaccia<br />

Il tipo della classe D è l’ <strong>in</strong>sieme <strong>di</strong> oggetti che implementano i meto<strong>di</strong> h,f,g.<br />

Sia d:D, se effettuo la chiamata d.f(); che f chiamo? Non ho più problemi, perchè la<br />

funzione f() deve essere implementata <strong>in</strong> d, <strong>in</strong> quanto B e C ne contengono solo la<br />

signature.<br />

Con le <strong>in</strong>terfacce non ho problemi <strong>di</strong> ere<strong>di</strong>tarietà perchè mancano delle<br />

D<br />

f<br />

g<br />

180

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!