Hola amigos bienvenidos a esta clase donde vamos a estar viendo un poco más de las clases heredadas
y lo nuevo que es polimorfismo en este caso yo ya para ahorrar tiempo me traje las clases que hemos
creado en la clase anterior donde vimos también herencia y en este caso voy a crear vamos a crear algunos
objetos que también ya lo tengo escrito como estamos viendo acá donde aprovecho cada clase que hemos
creado bueno creó un objeto distinto para cada uno dándole los valores correspondientes a cada a cada
objeto lo que les quiero mostrar es cómo podemos crear una lista de productos en este caso como verán
yo puedo crear en una variable enviarle a través de una lista de objetos que ya he creado acá arriba
el número ejecución 2 como están viendo y aprovechando lo que ya hemos aprendido.
Pues si yo quiero agregar a la lista otro valor yo lo pasé con Append de caso si revisamos vemos que
efectivamente me ha creado los tres objetos de auto deportivo y accesorios de una forma que podemos
recorrer estos valores.
Por qué si yo veo esto así que si soy un usuario me asusto y si soy un programador digo bueno todo muy
lindo pero que qué onda qué estoy escribiendo acá.
Bueno si lo recorremos con un foro y lo imprimimos con un salto de línea cómo estamos viviendo acá podemos
ver efectivamente la información que hemos almacenado a nuestra lista con los diferentes objetos que
tenemos vamos a continuar donde en este caso podemos ver cómo podemos acceder a los atributos si son
compartidos entre los objetos a qué me refiero y acá nos vamos a detener un poco y vamos a trabajar
sobre acá.
Eso es lo que le acabo de decir justamente que podemos acceder a los atributos si son compartidos en
los objetos vean que acá nosotros tenemos los atributos de los tres objetos que hemos creado entonces
yo en este foro estoy recorriendo justamente estos objetos en donde yo digo bueno yo lo que quiero ver
en mi fábrica de autos la información de Marca y de precio.
En este caso Podemos a ver qué marca y precio se encuentra en cada en todos.
O sea que es algo un factor común en cada objeto.
Esa es una condición que se tiene que cumplir.
Yo lo voy a ejecutar y vean que efectivamente me trae la marca y la marca y el precio de la marca y
el precio.
Hasta ahí bárbaro.
Pero qué pasa si yo ahora quiero recorrer lo mismo pero con autor.
Fíjense que autor sólo se encuentra en el primer objeto que acá se visualiza.
Autor no se encuentran los otros objetos.
Acá tenemos un problema.
Efectivamente acabamos de forzar un error donde vemos que Peyton no lo dice licencié muchacho deportivo
no se encuentra dentro del objeto deportivo no se encuentra el atributo autor entonces tenemos acá un
inconveniente cómo lo podemos resolver y acá es algo donde vamos a aprender algo nuevo.
Efectivamente que ya lo está viendo en pantalla.
No se asusten Vamos a explicarlo.
Lo que acá estamos aprendiendo de nuevo es esta terminología que es y es instances que de esta forma
lo que podemos hacer es tratar cada subclase de forma distinta.
Vuelvo a repetir con Instant podemos tratar cada subclase de forma distinta a qué me refiero con esto
con su clase de una manera distinta justamente podemos ir evaluando uno por uno y decir bueno si acá
se encuentra autor lo muestro Bacatá autor no Agata autor no.
Bueno ahí no lo muestro y de esa forma yo iré evaluando y así pude ir mostrando cada clase o alabando
la por sí misma.
Entonces bueno acá como lo están viendo en pantalla tecolote también lo van a tener ustedes que tranquilos
yo voy haciendo esto que les estoy explicando uno por uno tanto con un auto deportivo como con acceso
entre su imprimo.
Efectivamente no me da ningún error y yo puedo ir viendo por ruedas por ejemplo si se fijan ruedas no
se encuentran todos.
Si no me equivoco accesorio accesorio estas ruedas y acá tampoco de hecho así que ven que de esa manera
nosotros lo podemos lograr.
Y ahora justamente lo que vamos a hacer es ver cómo a través de funciones podemos recibir objetos de
distintas clases donde los objetos se envían por referencia a la función que vamos a ver donde acá lo
que vamos a aprender es que efectivamente lo que hagamos dentro de esta función va a afectar de una
manera directa al objeto y con esto dónde estamos aplicando polimorfismo pero vamos por parte tranquilos
no se desesperen.
Lo vamos a ir explicando paso por paso primero vamos a explicar qué estamos haciendo acá en esta función
que está recibiendo un objeto con distintas clases y por qué decimos que estamos aplicando polimorfismo.
Lo que yo hago acá es efectivamente como la función se llama descuento de autos yo quiero aplicar un
descuento en realidad un accesorio vamos a ponerle un accesorio acaso sea el número vamos a aplicarlo
en la camiseta vamos a hacer un descuento al accesorio donde tengo té o sea yo acá le voy a pedir una
función voy a pedir dos valores de que va a ser el objeto y el monto del descuento dio noté que el objeto
precio voy hacer a la ecuación para aplicar el descuento y que se aplique y que modifique esto de la
subclase dentro de ese objeto yo lo ejecuté y si ahora yo aplico descuento a accesorios por ejemplo
un 10 por ciento imprimo el objeto accesorio la subclase precio vemos que efectivamente esto fue un
10 por ciento de descuento porque esto era 10 mil.
Si nos fijamos en qué accesorios 10000 vemos que efectivamente se aplicó el descuento y bien un 10 por
ciento de 10 mil en 1000 pero estamos viendo que efectivamente yo acabo modificar el objeto y como se
está viendo en pantalla la forma de evitar esto es como una librería de pañito que se llama copy donde
nosotros podemos hacer una copia del objeto y trabaja directamente con la copia.
Van a Rondán fíjense que tengo que ejecutar acá arriba y ahora sí vemos que está cambiado.
Bueno si yo vuelvo a aplicarle el descuento va a ser sobre 9000 Ahora bien lo hace bien y si yo imprimo
la copia vemos que sigue siendo 9.000 se mantiene bien
entonces de esta manera nosotros justamente la definición de
polimorfismo dice que se refiere a una propiedad de la herencia por la que los objetos de distintas
subclases pueden responder a una misma acción o sea efectivamente.
Nosotros convocamos una subclase a raíz de heredarla y pudimos modificar una subclase en este caso modificamos
el precio polimorfismo policies de muchos muchas subclases donde pueden más se refiere a modificarse.
Esto es lo que justamente hicimos y esa es una virtud también de la herencia dentro de programación
orientada a objetos en este caso llamémoslo el método de descuento de accesorio fue capaz de tomar un
objeto de distintas subclases y manipular el atributo que en este caso es el precio.
Esta acción de manipularlo al precio funciona siempre y cuando el objeto tenga ese atributo pero en
el caso de que no lo tenga porque si yo hubiese puesto otro atributo que no lo tenga como nos sucedía
cuando recorríamos Alford no hubiese dado el error.
Entonces el polimorfismo es implícito en Peyton en todos los objetos ya que todos son hijos de una superclase
común del objeto.
No los quiero mareal pero bueno es estrictamente de esa forma de cómo funciona el polimorfismo.
Bueno amigos espero que les haya gustado.
Les dejo un abrazo digita.