Il polimorfismo è una competenza chiave in oggetto di programmazione orientata che permette agli sviluppatori di scrivere codice migliore più flessibile.
A tale scopo, eliminando la necessità di if e switch per determinare il comportamento.
Questo viene fatto affidamento su una classe di interfaccia o di base, pertanto quando si crea una logica a condizione che il codice utilizza solo alcuni metodi della classe di interfaccia o la base non ci sarà alcuna necessità di utilizzare le istruzioni if come ogni classe sarà l'implementazione della classe base o metodi di interfaccia in la propria strada.
Quindi con il codice sopra riportato uno sviluppatore non ha bisogno di sapere che tipo di classe l'animale al fine di rendere un suono fino a quando l'oggetto è di IAnimal tipo che gestirà questa stessa.
Naturalmente questo può essere ripetuto con classi utilizzando una classe base con il metodo override makeNoise e poi questo nelle classi figlio.
Di seguito è riportato un esempio di non usare polimorfismo.
Come potete vedere, perché non esiste un metodo standardizzato tra le classi logica aggiuntiva deve essere utilizzato per garantire il corretto metodo viene chiamato.