Hola amigos, bienvenidos a esta clase donde vamos a estar viendo lo que es herencia dentro de Python
en este caso, ahora han visto que efectivamente yo ya tengo mucho código escrito, a diferencia de
las otras clases, porque efectivamente Herencia es un tema un poco complejo dentro de los lenguajes
de programación, porque al mismo tiempo.
Es como que no nos ponemos de acuerdo, así que vamos a intentar hacerlo lo más sencillo posible.
Íbamos a hablar casualmente dentro de Peyton, la herencia, que es un concepto y una herramienta muy
importante dentro de lo que es programación orientada a objetos donde herencia.
Como bien dice el término.
Si no saben con lo que me refiero con herencia, herencia vendría a ser en los seres humanos el heredar,
el recibir.
Algo de alguien, de un pariente.
Un objeto directamente igual al que tenía el original.
Y dentro de la programación orientada a objetos dentro de Python, lo que hacemos efectivamente con
la herencia es reutilizar el primer objeto.
O sea, vendría a ser la superclase, literalmente.
De hecho se llama así.
Lo vamos a estar viendo.
La superclase hereda.
O sea, les brinda lo.
Los objetos.
Los métodos que vamos a crear.
A otras subclases.
Y esta subclases la van a utilizar y podemos ir agregando como para optimizar recursos.
Ahora vamos a ver un poco a qué me refiero con todo esto.
Bien, lo que vamos a hacer en un principio vamos a crear una.
Un ejemplo sin herencias, sin herencia.
Perdón.
Dónde?
Nosotros acá estamos creando una clase que se llama Fábrica.
Vamos a continuar con lo que hemos visto hasta ahora, con el ejemplo de la fábrica de autos en nosotros,
con el que creamos el constructor, en donde colocamos Cells y vamos a tener una fábrica, obviamente
una marca, un nombre, el auto, el precio, la descripción, una cantidad de ruedas en donde yo a
casa le agrego el none que hemos visto en clases anteriores, por si quiero omitir la cantidad de ruedas
y si quiero omitir el distribuidor, por ejemplo.
Entonces nosotros acá tenemos marca, nombre, precio.
Creamos los objetos, digamos, o el valor de cada uno y luego lo que yo hago es instancia.
O sea, creo el objeto.
En este caso en auto voy a poner Fadrique y lo voy a pasar.
Los valores en este caso yo y colocando solo cuatro porque ruedas en distribuidor no es obligatorio.
Entonces si yo esto lo ejecuto.
Todo bien.
No tiene ningún error, nada.
Y si yo quiero ver el objeto, puedo ver obviamente a través de esa manera.
De esta manera podemos ver que en este caso es Ringer el nombre, por ejemplo.
Bien, ataca.
Todo bien, puede ser un poco molesto estar recreando todo esto y acá empieza a tener.
Una razón de ser el mundo, la la herencia que estamos hablando hasta ahora, donde nosotros en este
caso, como bien les dije al principio de la clase, vamos a crear una super clase en este case.
En este caso la superclase va a ser fabrica.
Donde nosotros podemos encontrar un factor común.
A qué me refiero?
Lo importante en la herencia y en la progresión en tal objeto es nuestra capacidad de análisis.
Y nosotros viendo esto, nos podemos dar cuenta de que las ruedas y el distribuidor es lo que puede
llegar a variar dentro de un auto y otro.
Pero luego todo esto va a tener una nada, una marca auto auto va a tener un nombre, todo auto va a
tener un precio y realmente una descripción del auto.
Entonces, lo que nosotros podemos hacer acá efectivamente lo vamos a señalar porque ya está escrito.
Nosotros creamos la superclase fábrica en donde directamente yo.
Estas dos cosas que están viendo en pantalla quien no se ve tan colorido.
No se ve porque está en la parte oscura, digo, no se ve tan claro.
Ehm.
Omitimos esos dos valores que pueden llegar a estar o no?
Como ven acá, Susanoo marca, nombre, precio y descripción lo ejecuto y luego esto me va a molestar
en el string.
Yo devuelvo el valor marca el valor nombre, precio, descripción.
Y en la llave realmente agregó el format con los vacada valor.
Recuerden que la T es para la tabulación y los espacios.
Vamos a ver que sucede con esto.
Solo ejecuto.
Y de esa manera, como de la casa en la ejecución 3 creamos esta super clase.
En este caso de fábrica.
Y ahora lo que voy a hacer yo es crear una subclase.
Se llama así esto, una subclase que acá viene el punto importante.
Fíjense.
Donde yo acá tengo una súper clase.
Vamos a escribirlo.
Le voy a escribir una S de super, una se de clase.
Y este va a ser la sub clase.
Donde yo acá lo que estoy haciendo, fíjense, acá tengo clase fabrica y en la sub clase se caracterizan
por este formato.
Yo escribo el nombre de la clase y entre paréntesis la superclase que va a heredar.
Entonces de esa manera, fíjense que yo directamente puse un pase adentro.
Después, más adelante saqué también un poco, ya estaba haciendo trampa también un poco.
Lo que vamos a ver en este caso lo dejo vacío.
Pero inmediatamente hereda todo lo de acá adentro.
Entonces yo a raíz de esta fábrica de la superclase, puedo crear una subclase de auto sin mucho más
esfuerzo y automáticamente sin escribir todo este código.
Yo ya lo heredé.
Y fíjense lo que pasa.
Yo ejecuto y efectivamente en esta variable Z yo ato este pasando Ford Ranger un construción min y la
descripción de camioneta lo imprimo y fíjense que efectivamente.
Me aparezca el dato.
Acá verán que me aparece como una tabulación.
Esto es por este detalle.
Cómo lo podemos arreglar si yo agrego esta barra invertida y saco estos espacios?
Fíjense que va a suceder.
Y de hecho, ya que estamos viendo que dentro de descripción y camioneta están muy juntos y para que
todos tengan la misma tabulación, lo que vamos a hacer es agregar una tabulación más a cada uno para
que todos entre.
Fíjense cómo esto va a cambiar.
Vieron?
Bueno, estoy.
Está hecho, no me gusta.
Vamos a quitarle una.
Se me fue mucho.
Bueno, bien, quedó mucho mejor.
Como verán, esta es la virtud de esta barra colocada en un principio bacia y como verán, de esta forma
nosotros podemos heredar lo de fabrica.
En nuestra clase, en su clase auto, subclase auto hereda la superclase de fábrica.
Si, yo tenía que haber escrito ninguna línea más, pero esto no termina acá.
Vamos a ver.
Otra gran ventaja de todo esto.
Fíjense cómo yo, por ejemplo, aprovechando las bondades de la programación orientada a objetos, no
tengo que volver a escribir el código de fábrica.
Si yo quiero, por ejemplo, dentro de mi fábrica de autos, crear una subclase que sea un auto deportivo,
por ejemplo, en donde yo directamente yo acá le estoy pasando la superclase fábrica segurida un montón
de cosas ya de manera a priori.
Y qué sucede?
Yo acá en el Deportivo estoy creando tanto las ruedas como el distribuidor y yo ya lo creo vacío para
que no sea obligatorio llenarlo.
Y luego obviamente en mi stream retorno los valores donde agrego rueda de distribuidor en el format.
Hago lo mismo.
Porque esto se va a ver reflejado netamente en las llaves y de esa manera yo, por ejemplo, acá puedo.
Vamos a ejecutar.
Yo puedo crear el objeto, o sea la variable deportiva de una instancia, el objeto deportivo, entonces
le paso los valores, digo un volvÃan invento, lo inventé, no tengo mucha idea de auto se encuentra
4000 dólares, el mejor para el distribuidor y digo que tiene tres ruedas.
Y el distribuidor Tatito?
Entonces yo ejecuto esto, fíjense que acá aparece número diez y lo imprimo y como verán, acá aparecen
los datos donde de hecho acá nosotros podemos volver a hacer lo que hice yo más arriba o abajo, a ver
como queda.
Denme un segundo Netto porque me falta ejecutar acá, así lo refresco bien.
Ven aquí y ruedas también.
Y de esa manera vemos que podemos reutilizar el código, nos ahorramos mucho trabajo y obviamente en
desarrollos mucho más amplios, esto toma una importancia fundamental.
Bueno amigos, espero que les haya gustado la clase.
Les dejo un abrazo, digita.