Polimorfismo

Terzo meccanismo fondamentale della programmazione ad oggetti dopo:

Il Polimorfismo permette di estendere un progetto già sviluppato aggiungendo nuove funzionalità

Polimorfismo statico e dinamico

Letteralmente, per polimorfismo si intende la proprietà di una entità di assumere forme diverse nel tempo

Riferendoci ad un sistema software ad oggetti, il polimorfismo è la capacità che hanno oggetti di classi derivate da una classe base comune di rispondere in maniera diversa ad uno stesso messaggio

Una entità è polimorfa se può fare riferimento, nel tempo, a classi diverse

Early e late binding

L’azione di collegare la chiamata di un metodo al codice corrispondente può avvenire:

Polimorfismo → Estensibilità

Il polimorfismo supporta dunque la proprietà di estensibilità di un sistema, nel senso che minimizza la quantità di codice che occorre modificare quando si estende il sistema, cioè si introducono nuove classi e nuove funzionalità

Quindi

Il polimorfismo consente di separare il come dal cosa: