Programmazione orientata agli oggetti: Che cos’è il polimorfismo

Programmazione orientata agli oggetti: Che cos’è il polimorfismo

Nella programmazione orientata agli oggetti, il polimorfismo nel paradigma ad oggetti, sfrutta l’estensione delle classi per poter assegnare all’oggetto il metodo appropriato, identificabile solo a runtime. L’oggetto può appartenere sia alla sua classe vera e propria, che ad una qualsiasi altra classe estensione della precedente.

Il meccanismo di estensione di una classe viene utilizzato per ottenere una specializzazione, nei casi in cui la classe estesa definisca un nuovo comportamento e quindi costituisca una versione più specializzata della sua superclasse. L’estensione di una classe può quindi comportare unicamente una modifica alle implementazioni dei metodi ereditati per renderli eventualmente più efficienti.

Per una classe è possibile disporre di metodi statici, noti come metodi di classe. Questi metodi implementano operazioni tipiche della classe stessa, operano sugli attributi statici e non su istanze specifiche della classe; qando vengono invocati, non riferiscono ad  un un oggetto specifico su cui operare, come invece agiscono i metodi normali.

Programmazione orientata agli oggetti: Che cos'è il polimorfismo

Le classi sono dotate di costruttori, ovvero blocchi di istruzioni utilizzabili per inizializzare un oggetto prima che restituisca un riferimento ad esso. I costruttori hanno lo stesso nome della classe che inizializzano.

I motivi che spingono a fornire costruttori specializzati sono i seguenti:

  • alcune classi possono non avere uno stato iniziale ragionevole se prive di parametri;
  • fornire uno stato iniziale è al tempo stesso ragionevole e conveniente nel momento in cui si costruiscono certi tipi di
  • costruire un oggetto è una operazione costosa, quindi si vuole che gli oggetti siano dotati di uno stato iniziale corretto subito dopo la
  • un costruttore che non è pubblico permette di limitare il numero di coloro che possono creare oggetti attraverso di esso.

Se in una classe non si forniscono costruttori di alcun tipo, il sistema utilizza un costruttore di tipo standard che non fa nulla: costruttore di default. Un’altra forma di costruttori è il costruttore copia, che richiede come argomento un oggetto del tipo corrente e ne costruisce uno nuovo che ne è una copia.

Precedente Programmazione orientata agli oggetti: Che cos'è l'ereditarietà Successivo Programmazione orientata agli oggetti: Overriding, Overloading, e Late Binding

Lascia un commento

*