Polimorfismo en programacion orientada a objetos ejemplos

Programación por abstracción
La programación orientada a objetos (POO) es un paradigma de programación basado en el concepto de "objetos", que pueden contener datos y código. Los datos se presentan en forma de campos (a menudo conocidos como atributos o propiedades), y el código, en forma de procedimientos (a menudo conocidos como métodos).
Una característica común de los objetos es que los procedimientos (o métodos) están vinculados a ellos y pueden acceder a los campos de datos del objeto y modificarlos. En este tipo de programación orientada a objetos, suele utilizarse un nombre especial, como this o self, para referirse al objeto actual. En la programación orientada a objetos, los programas informáticos se diseñan a partir de objetos que interactúan entre sí[1][2] Los lenguajes de programación orientada a objetos son diversos, pero los más populares se basan en clases, lo que significa que los objetos son instancias de clases, que también determinan sus tipos.
Muchos de los lenguajes de programación más utilizados (como C++, Java, Python, etc.) son multiparadigma y soportan la programación orientada a objetos en mayor o menor grado, normalmente en combinación con la programación imperativa y procedimental.
Programación polimórfica
Por ejemplo, en muchos lenguajes, los enteros y los flotantes son implícitamente polimórficos, ya que se pueden sumar, restar, multiplicar, etc., independientemente de que los tipos sean diferentes. Rara vez se consideran objetos en el término habitual.
Con el polimorfismo, cada una de estas clases tendrá datos subyacentes diferentes. Una forma puntual sólo necesita dos coordenadas (suponiendo que esté en un espacio bidimensional, por supuesto). Un círculo necesita un centro y un radio. Un cuadrado o rectángulo necesita dos coordenadas para las esquinas superior izquierda e inferior derecha y (posiblemente) una rotación. Un polígono irregular necesita una serie de líneas.
La orientación a objetos, el polimorfismo y la herencia son conceptos estrechamente relacionados que es vital conocer. Durante mi larga carrera ha habido muchas "balas de plata" que básicamente se han esfumado, pero el paradigma OO ha resultado ser uno bueno. Apréndelo, entiéndelo, ámalo - te alegrarás de haberlo hecho 🙂
(a) Lo escribí originalmente en broma, pero resultó ser cierto y, por tanto, no tan gracioso. Resulta que el monómero estireno está hecho de carbono e hidrógeno, C8H8, y el poliestireno está hecho de grupos de eso, (C8H8)n.
Polimorfismo en oop ejemplo
Polimorfismo significa "capacidad de adoptar diferentes formas". Cuando se aplica a Java (y a otros lenguajes de programación orientados a objetos), describe la capacidad del lenguaje para procesar objetos de varios tipos y clases a través de una interfaz.
Un ejemplo importante de polimorfismo es cómo una clase padre se refiere a un objeto de clase hijo. El polimorfismo se produce cuando se crea una clase que extiende a otra. Por ejemplo, consideremos una clase Animal y dejemos que Gato sea una subclase de Animal. Entonces, cualquier gato ES un animal. Aquí, un Gato satisface la relación IS-A para su propio tipo, Gato, así como para su superclase Animal, y por lo tanto es polimórfico. De hecho, cualquier objeto que satisfaga más de una relación IS-A es polimórfico por naturaleza.
Una subclase hereda los atributos y métodos de su superclase (padre). Cuando un método definido en esta subclase anula la subclase de su padre, la naturaleza polimórfica de Java puede permitirle realizar la misma acción (método) de una manera diferente. Para ampliar nuestro ejemplo, el método feedAnimal() puede realizar acciones diferentes si se llama a un Gato en lugar de a un Animal genérico.
Polimorfismo java
¿Por qué? Porque creo que son conocimientos esenciales no sólo para los desarrolladores, sino también para los probadores que trabajan con código, lo leen o lo escriben. Comprender estos principios ayuda a entender mejor el código de la aplicación, a hacer recomendaciones sobre cómo mejorar la estructura de ese código y, por supuesto, también a escribir mejor código de automatización.
Para comprender mejor cómo es el polimorfismo, en primer lugar es bueno saber que dentro de la programación orientada a objetos se dan con frecuencia dos tipos de polimorfismo: el overriding y el overloading. Se podría decir que incluso el propio polimorfismo tiene múltiples formas. Cómo meta...
Además, en la primera entrada del blog, implementamos el método retirar en la clase Cuenta, que contiene algo de lógica de negocio general (evitar que depositemos una cantidad negativa), pero también algo de lógica de negocio que es específica de una cuenta de ahorros (evitar sacar de más de una cuenta de ahorros).
Podemos argumentar que esta segunda parte de la lógica debería formar parte de la clase SavingsAccount, en lugar de la clase Account, ya que es específica de las cuentas de ahorro. Como resultado, ambas clases deberían tener su propia implementación del método retirar().