  |
Riutilizzare codice esistente |
Le basi su cui poggia la programmazione oggetti abbiamo detto essere tre: incapsulazione, ereditarietà e polimorfismo. Finora abbiamo esaminato in dettaglio l'incapsulazione. Vediamo adesso gli altri due piedi su cui poggia la programmazione oggetti. È importante capire che lo scopo di quando vedremo in questa sezione è quello di consentire il massimo riutilizzo di codice esistente.
  |
Ereditarietà: consente di riutilizzare i dati
esistenti, aggiungendone di nuovi. |
Innanzitutto abbiamo l'ereditarietà: si tratta della possibilità di prendere una classe con tutti gli annesse connessi, e di creare una nuova che possiede nuovi campi e nuovi metodi. Questa nuova classe però eredita tutti i campi e tutti gli metodi della classe su cui si basa.
  |
Polimorfismo: consente di ridefinire il comportamento |
Il meccanismo di ereditarietà però ha il limite di doversi tenere una classe esistente così come è. Succede di frequente però che la classe che vogliamo a volte caratteristiche di una classe esistente, ma qualcosa va cambiato. Fortunatamente il terzo piede della programmazione oggetti pone rimedio questo limite, consentendo al programmatore di sostituire comportamenti esistenti (ovvero metodi) con altri. Il nome polimorfismo viene dal fatto che un oggetto viene considerato come un mutante, il cui comportamento può variare a pari richiesta. Per capirci se noi diciamo a un uccello di volare, questo volerà in un certo modo, che però è diverso dal modo di volare di un aereo. Ma tutte due possono avere in comune il fatto di essere dei volatili . In generale si può pensare di chiedere a un volatile di volare: se è un aereo volerà in un modo se un uccello volerà in un altro.
|