En la programación de software, la programación orientada a objetos (OOP) es un marco que intenta crear objetos a partir de cosas del mundo real. La teoría y la práctica del polimorfismo se fomentan fuertemente dentro de los principios de OOP. En general, un objeto debe crearse para tener características y comportamientos básicos con el entendimiento de que estos cambiarán cuando se convierta en un tipo específico.
El polimorfismo es la capacidad de tener una variable, función o un objeto con más de un significado dentro del programa. Hay varios diseños de arquitectura que demuestran polimorfismo. Estos diseños describen cómo se reutilizará un objeto dentro de una aplicación para múltiples propósitos.
Muchos lenguajes de programación admiten el uso de polimorfismo. Este proceso permite la reutilización de reglas comerciales y código de software en una aplicación. No todos los lenguajes de programación admiten el comportamiento polimórfico completo, pero la mayoría admite el concepto básico. Todos los verdaderos lenguajes de programación orientada a objetos, incluidos Java®, .net y C ++®, admiten enfoques y técnicas más avanzados.
Una cuenta bancaria es un buen ejemplo de objeto base que podría admitir polimorfismo. Todas las cuentas bancarias tienen números de cuenta, nombres y un saldo. Lo que hace que una cuenta sea única es el tipo de cuenta. Algunos ejemplos de tipos son cuentas de ahorro, cuentas corrientes o cuentas del mercado monetario. Dentro del polimorfismo, una cuenta bancaria sería el objeto base con las cuentas más específicas utilizando las características de la cuenta bancaria base. Cada cuenta podría tener comportamientos adicionales para respaldar las tasas de interés o multas por retiro mientras se reutiliza la información sobre una cuenta bancaria.
El uso de las teorías del polimorfismo ahorra tiempo a los desarrolladores al reducir el código desperdiciado. Hace que el código sea más fácil de escribir y más fácil de entender para otros. Además, hace que el software sea extensible, porque los tipos futuros se pueden agregar más tarde utilizando el objeto ancestro base dentro del código existente. En general, las aplicaciones desarrolladas de esta manera son más flexibles y fáciles de extender al requerir menos código para futuras modificaciones.
Las teorías del polimorfismo también se aplican a las funciones. Una función es una pieza de código de software que realiza una tarea específica. Las funciones también se pueden escribir de forma polimórfica. Este enfoque hace que el código sea más flexible porque las funciones se pueden reutilizar para otras reglas comerciales dentro del software.
Un buen ejemplo de polimorfismo con una función sería una función de clasificación. Este tipo de función ordenaría una lista de números. Una función polimórfica no solo podría clasificar números, sino que también podría clasificar cualquier tipo de objeto. Esto hace que la función sea más eficiente porque trabaja con múltiples tipos de datos.