Cos'è il polimorfismo?

Nell'informatica, il polimorfismo si riferisce alla capacità di un linguaggio di programmazione di interpretare gli oggetti in modi diversi in base alla loro classe o tipo di dati. In sostanza, è la capacità di un singolo metodo di essere applicato alle classi derivate e ottenere un output adeguato.

Tre rami di polimorfismo

  • Il polimorfismo ad hoc si ha quando una funzione viene implementata in modo diverso a seconda di un numero limitato di tipi specificati e di combinazioni di parametri di input. Un esempio di polimorfismo ad hoc è l'overloading delle funzioni.
  • Il polimorfismo parametrico si verifica quando il codice viene scritto senza alcuna specifica di tipo e può quindi essere utilizzato con qualsiasi numero di tipi diversi specificato in seguito. Nella programmazione orientata agli oggetti, questo è spesso chiamato programmazione generica.
  • Il polimorfismo di inclusione, noto anche come sottotipizzazione, è quando un singolo nome può riferirsi a istanze di un qualsiasi numero di classi diverse purché condividano la stessa superclasse.

Esempio di polimorfismo in Java

Codice di esempio

 class OverloadedObject {void overloadedMethod (int a) {System.out.println ("Questo metodo viene chiamato quando il parametro è un intero. a =" + a); } void overloadedMethod (int a, int b) {System.out.println ("Questo metodo viene chiamato quando ci sono due parametri e sono entrambi interi. a =" + a + ", b =" + b); } void overloadedMethod (double a) {System.out.println ("Questo metodo viene chiamato quando c'è un parametro ed è un numero a precisione doppia. a =" + a); }} classe DemonstrateOverloading {public static void main (String args []) {OverloadedObject myObj = new OverloadedObject (); myObj.overloadedMethod (1); myObj.overloadedMethod (2, 3); myObj.overloadedMethod (4); }} 

Esempio di output del codice

 Questo metodo viene chiamato quando il parametro è un numero intero. a = 1 Questo metodo viene chiamato quando ci sono due parametri e sono entrambi interi. a = 2, b = 3 Questo metodo viene chiamato quando il parametro è un numero a precisione doppia. a = 4 

Si noti che produce output diversi in base a diversi parametri di input, anche se la classe e il nome del metodo invocati sono sempre gli stessi.

Object-oriented, Output, Parameter, Polymorphic virus, Linguaggio di programmazione, termini di programmazione