Anfernee Valera
Luis Fernando Morla Mora
Edgar Vinicio Castro Morocho
¿Qué es la herencia en programación orientada a objetos?
La programación orientada a objetos es una poderosa metodología que se basa en varios pilares, entre ellos, la herencia. Este concepto nos permite crear clases madre, que actúan como plantillas, para formar nuevas clases hijas. En lugar de repetir atributos y métodos comunes, las clases hijas pueden heredar todas las propiedades de la clase madre, promoviendo la reutilización del código y el orden.
¿Por qué importar la herencia en el contexto de Platzi?
En Platzi, los estudiantes tienen ciertas variaciones, como estudiantes con suscripción y estudiantes sin suscripción. Esta diversificación es crucial para que la plataforma ofrezca correctamente sus servicios. La herencia se utiliza para definir características comunes de todos los estudiantes en una clase madre "Student" y especificar los detalles únicos para los distintos tipos de estudiantes en las respectivas clases hijas.
Ventajas de la herencia:
¿Cómo evitar el desorden en el código con herencia?
Para manejar las diferencias entre tipos de estudiantes sin caer en un laberinto de condiciones, la herencia permite crear clases específicas para cada tipo de suscripción, como "FreeStudent", "BasicStudent" y "ExpertStudent". Así, podemos establecer en la clase madre "Student" los atributos comunes, como nombre, edad, email, cursos aprobados, etc. A partir de esta base, las clases hijas extienden sus particularidades sin necesidad de escribir de nuevo todos esos datos compartidos.
class Student { constructor(name, age, email) { this.name = name; this.age = age; this.email = email; } } class FreeStudent extends Student { // Implementa métodos específicos para estudiantes sin suscripción } class BasicStudent extends Student { // Implementa métodos específicos para estudiantes con suscripción básica } class ExpertStudent extends Student { // Implementa métodos para estudiantes con suscripción experta }
Las clases hijas usan la palabra reservada extends para heredar de la clase madre. Esta es la magia que simplifica la estructura y administra eficazmente las diferencias en las funcionalidades.
¿Qué beneficios trae programar con herencia?
Implementar herencia no solo optimiza el uso de recursos al evitar la repetición, sino que también prepara el terreno para una aplicación robusta y flexible. Es fácil introducir nuevos tipos de estudiantes o modificar las reglas de una suscripción sin afectar las demás. Además, garantiza que cualquier cambio en la funcionalidad común se propague automáticamente a todas las clases hijas, manteniendo la consistencia.
Prácticas recomendadas:
Al emplear estos conceptos, se forman aplicaciones eficientes y escalables, tal como sucede en una plataforma diversa como Platzi. Así, la herencia no solo se convierte en una herramienta, sino en una estrategia vital para el desarrollo exitoso de software.
Anfernee Valera
Luis Fernando Morla Mora
Edgar Vinicio Castro Morocho
Juan Gustavo Daza Martínez
Juan Castro
ProfesorAuler Josby Cordoba Roa
Miguel Angel Reyes Moreno
José Antonio Zegarra Medina
Jhoan Sebastián Lopera Gallego
Gonzalo Ceron Denetro
Fernando Quinteros Gutierrez
Fredy Gutiérrez Vazquez
Jesus Cuadro
Miguel Angel Hernandez Colombo
Camila Púa
José Gregorio Estrada Meneses
Eliaz Bobadilla
Angel Solis
Ederson Felipe Lopez Bolivar
Miguel Angel Reyes Moreno
Santiago Giorgetti
Segundo Juan
Freddy J Marin L
Enrique Manuel Sánchez Castañeda
Ricardo Alfonso Chavez Vilcapoma
Miguel Ángel Baquero Tello
Josue Fredes
Santiago Lopera Naranjo
Francisco Imanol Suarez
Pedro Alvarado Garcia
Estiven Mahecha Henao
Andrés Felipe Eslava Zuluaga
Valentina Llorente Hernández
Jeremy Palomino
Christopher Andrés Guano Valencia
Juan Castro
ProfesorDaniel Morales
Cuando observemos 👀 en nuestras clases o en el proceso de abstracción que hay clases que pueden compartir atributos, métodos (o simplemente porque la lógica del negocio nos lo indica). Podemos abstraer aun más nuestras clases y crear así las Suuuuuuper clases. Estas serán moldes que nos permitirán "heredar" atributos y métodos a nuestras sub-clases. No lo olviden, DRY(Don't Repeat Yourself). Mejor utiliza una SUUUUPEEER Class.
SUPER FrankyPOO jajaja por fin alguien más que hace una referencia a One Piece, yo en abstracción solo anote que incluso todas las entidades debían ser abstraídas y que cada entidad debía tener su clase, o su molde de clases, luego comencé a hacer metáforas con la ecología y las razas xD pero me alegra ver este aporte
jajajaja buena buena
Y yo que no me consideraba un objeto para nadie pero soy un objeto para JS 🥲
JAJAJAJAJA
¡Qué crack!
La herencia nos permite crear "clases madre", la cual servirá de molde para clases hijas, que compartirán sus métodos y atributos.
Usamos la palabra reservada extends.
📌 La herencia nos permite crear nuevas clases a partir de otras, se basa en modelos y se genera una jerarquía de padre e hijo.
Excelenete !
La herencia nos permite crear nuevas clases a partir de otras, la clase principal es llamada la Superclase, esta va a ser la clase general ,el molde general. Cuando veamos que tenemos elementos repetidos comenzamos a crear una abstracción, creamos una clase general que nos permita crear nuevas clases.
Tenemos las subclases, que son las que heredan atributos y métodos de las Superclases, podríamos decir que son las clases hijas. En las clases hijas ponemos los atributos que solo ellas van a utilizar, que son solo características de ellas.
👨 Qué es herencia
Apuntes
extendsEjemplo
<aside> 📌 **RESUMEN:** Herencia es un pilar de la programación orientada a objetos, este concepto nos ayuda a crear una clase la cual te servirá para poder crear otras clases a partir de esta, las derivadas de la clase superior obtendrán tanto métodos y atributos definidos en la clase superior </aside>class Student{ ... } class FreeStudent extends Student{ }
Excelente contribución, gracias.
Muchas gracias
un departamento entero se llama Freddy!
amé que Freddy tuviera su clase
HERENCIA JavaScript en un lenguaje orientado a objetos basado en prototipos, en lugar de estar basado en clases. Debido a esta básica diferencia, es menos evidente entender cómo JavaScript nos permite crear herencia entre objetos, y heredar las propiedades y sus valores.
Gracias por el concepto!
JAJAJA ¿De verdad en platzi hay una subclase llamada Freddy?
He is the admin JAJAJAJ
El CEO puede hacer lo que se le dé la gana 🤠
Qué es la herencia?
Don’t repeat yourself es una filosofía que promueve la reducción de duplicación en programación, esto nos va a inculcar que no tengamos líneas de código duplicadas.
Toda pieza de información nunca debería ser duplicada debido a que incrementa la dificultad en los cambios y evolución
La herencia nos permite crear nuevas clases a partir de otras, se basa en modelos y conceptos de la vida real. También tenemos una jerarquía de padre e hijo.
Cada vez mejor este curso Juan!
No me gusta como habla en diminutivos este tipo.
Entonces no mire la clase señor.
No me gusta como da feedback este tipo
La herencia nos permite crear clases madres, moldes generales o super prototipos para crear nuevos prototipos a partir de ellos.
En el nuevo prototipo se puede heredar desde la clase madre todos los atributos y métodos que allí definimos. La palabra reservada para lograr esto es extends.
class Student { constructor(name) { this.name; } } class FreeStudent extends Student {}
Qué es la herencia?
Don’t repeat yourself es una filosofía que promueve la reducción de duplicación en programación, esto nos va a inculcar que no tengamos líneas de código duplicadas. Toda pieza de información nunca debería ser duplicada debido a que incrementa la dificultad en los cambios y evolución
La herencia nos permite crear nuevas clases a partir de otras, se basa en modelos y conceptos de la vida real. También tenemos una jerarquía de padre e hijo.
class Student ({ constructor(name) { this.name; } }); class FreStudent extends Student {} ;
la palabra extends seguida de la clase madre, provoca que esta nueva clase hija herede todos los atributos y metodos de la clase madre
Entonces, extends es el equivalente al super() de otros lenguajes de programación?
Hola Santiago ¿Cómo estas? Extends nos permite heredar los atributos de otra clase. Por ejemplo: Clase Persona(nombre, apellido) Clase **Enfermero ** extends Persona Ahora mediante super() podemos acceder a los atributos nombre y apellido de la clase Persona.
Saludos ! Espero ser claro en la respuesta.
En parti sí. Porque en Python, por ejemplo, el super() hace referencia a los atributos de la superclase.
Recuerden que no es tan profesional referirse a esta clases como clases padres, lo que recomiendan y como fueron declaradas desde un principio es llamarlas SUPERCLASES y a sus clases "hijas" SUBCLASE.
¿QUÉ ES LA HERENCIA? · Nos permite crear Clases Madre/Padre, moldes generales, prototipos super-prototipos, para poder crear prototipos (clases) hijas. Así, se puede crear una Clase molde Madre, y a partir de esta clase, se puede definir y extender más clases que heredan todos los atributos y métodos de su mamá, Clase molde Hija.
Herencia: Nos permite crear nuevas clases a partir de otras mismas que se basan en modelos y conceptos, Se genera una jerarquia de Padre-Hijo. el 'padre' es una SUPER CLASE y el 'hijo' una SUBCLASE. La palabra extends seguida de la SUPER CLASE, provoca que esta nueva SUBCLASE herede todos los atributos y metodos de la SUPER CLASE.
Pregunta super Random!!!
SE PUEDE CREAR UNA CLASE QUE EXTIENDA DE DOS CLASES PADRE? Algo asi como tener una clase que sea Ninja
class Ninja { constructor(name){ this.name } fatality(){ console.log("Ja! te maté xdd") } golpeBasico(){ console.log("Eso te gustó amiguito") } }
Y tener la clase Tortuga
class Tortuga{ constructor(dureza, vida){ this.durezaCaparazon = dureza this.salud = vida this.colorPiel = "verde" } esconderse(){ console.log("Ja! No me puede hacer nada") } }
Y luego crear una clase TortugaNinja jajaja No se si se pude hacer pero creo que la sintaxis podria ser algo así
class TortugaNinja extends Ninja , Tortuga{ ... }
O podria ser asi:
class TortugaNinja extends Ninja extends Tortuga{ ... }
Es posible hacer esta locura mia?
No se puede extender 2 clases por cómo funciona JavaScript, porque un objeto solo puede heredar un prototipo de una clase.
Espero haberte ayudado :DD
No es una locura, para nada. Desafortunadamente no se puede. Algo parecido sería que tu clase extienda de una clase que a su vez extiende de otra clase. ¿Cómo lo harías? :wink:
Que excelente clase!
La herencia nos permite extender o compartir atributos de una clase madre. Como ejemplo podemos tener a nuestros padres.
Nosotros los tenemos a ellos como moldes o clases madre de la cual compartimos ciertos atributos, alguno de ellos pueden ser los ojos, la nariz, los labios, el rostro, el color de piel, gestos y muchos más... y a la vez podemos tener nuestra propia personalidad, pensamientos, maneras de actuar que nos hace diferentes a ellos.