Cuando detecto características y comportamientos iguales, entonces significa que debo realizar una abstracción.
Bienvenida e Introducción
¿Por qué aprender Programación Orientada a Objetos?
¿Qué resuelve la Programación Orientada a Objetos?
Paradigma Orientado a Objetos
Lenguajes Orientados a Objetos
Instalando Visual Studio Code
Diagramas de Modelado
Qué es UML
Orientación a Objetos
Objetos
Abstracción y Clases
Modularidad
Analizando Uber en Objetos
Reto 1: identificando objetos
Programación Orientada a Objetos. Análisis
Clases en UML y su sintaxis en código
Modelando nuestros objetos Uber
¿Qué es la herencia?
Aplicando Herencia a nuestro proyecto Uber
Reto 2: analicemos un problema
Clases, Objetos y Método Constructor
Creando nuestras carpetas iniciales para el curso
Definiendo clases en Java y Python
Definiendo Clases en JavaScript
Objetos, método constructor y su sintaxis en código
Objetos. Dando vida a nuestras clases en Java y Python
Declarando un Método Constructor en Java y JavaScript
JavaScript orientado a objetos, lo más nuevo
Declarando un método constructor en Python
Herencia
Aplicando herencia en lenguaje Java y PHP
Solución del reto de herencia en PHP
Aplicando herencia en lenguaje Python y JavaScript
Otros tipos de Herencia
Reto 4
Encapsulamiento
Encapsulamiento
Encapsulando atributos en Java
Polimorfismo
Generando polimorfismo en Java
Generando polimorfismo en PHP
Cierre del curso
El Diagrama UML de Uber
Conclusiones
Bonus: Qué es la Programación Orientada a Objetos
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
No se trata de lo que quieres comprar, sino de quién quieres ser. Aprovecha el precio especial.
Antes: $249
Paga en 4 cuotas sin intereses
Termina en:
Anahí Salgado Díaz de la Vega
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.
Aportes 265
Preguntas 27
Cuando detecto características y comportamientos iguales, entonces significa que debo realizar una abstracción.
Superclase la que está dando Anahí!. Excelente curso
Así entiendo que es una clase. Cualquier corrección favor de informar.
He escuchado que hay programadores que no aconsejan en el trabajo usar los términos Padre e hijos ya que al llamarlos así se puede dar una mala impresión en cuanto al nivel profesional y de conocimiento. En un escenario laboral es mejor llamar estas relaciones con los nombres Súperclase y Subclase y solo usar Padre e hijos para enseñar y entender la idea de herencia (como el caso de este curso) y entre compañeros de confianza.
-“Bastantes hijos”
Así entiendo yo el término herencia. Cual quier corrección adelante.
Les comparto una infografía de herencia con Python
Asi enteido yo lo que es la abstracción de una clase.
El concepto de herencia es un muy importante dentro de la programacón, por ejemplo en frameworks se hace mucho uso de ella y tener este concepto claro ayuda mucho a comprender como funcionan los frameworks internamente, por ejemplo en laravel de php cuando creamos modelos estos heredan de una clase principal llama Model…
Java admite padrastros por medio de las interfaces :v
Muy parecido al concepto de entidad relación en una base e datos relacional
😄
Platzi porque se fue AnnCode? La extraño
📌 Debemos utilizar la herencia, cuando detectamos elementos repetidos en nuestros objetos. Esto nos permite eliminar la redundancia.
Así entendí yo la abstracción. Si alguien gusta en correguirme adelante.
Me quedo con esa frase “Don’t repeat yourself”, hasta ahora hacia codigos duplicando todo pero es muy importante reultilizar el codigo y excelente expliación de la herencia.
Realize un diagrama de clases para practicar, espero tenerlo bien jejjej
![](
La clase SeleccionFutbol también la podemos poner como Persona para mayor claridad.
En este punto del curso ya sabemos los 4 elementos importantes:
Tambien sabemos dos de las leyes de la POO
pilas 🔋
Aprovechando el #PlatziDay
-La herencia es el mecanismo mediante el cual podemos definir una clase (Subclase) en función de otra ya existente (Superclase).
-Las subclases heredan los atributos y operaciones de sus superclase.
-Existen dos tipos de herencia (Simple y Multiple):
*Herencia múltiple en la que una clase puede **heredar ** comportamientos y características de más de una superclase.
*Herencia simple, donde una clase sólo puede heredar de una superclase.
HERENCIA EN POO
La herencia, es el procedimiento utilizado para reutilizar codigo cuando creamos nuevas clases. Pues lo único que se hace, es indicar al programa que queremos utilizar las variables y funciones de una clase que ya hemos creado anteriormente. Es decir, podemos utilizar los metodos y atributos de una clase que ya existe, colocarlos dentro de una nueva clase sin necesidad de volver a escribir el codigo.
La herencia o reutilización de codigo, es una gran ventaja porque ayuda al programador a ahorrar codigo y tiempo, al no tener que volver a escribir las mismas líneas de codigo nuevamente.
Me recuerda a “sacar factor común” de matemáticas ya que extraes aquello que se repite. Lo conviertes en súperclase y dejas lo que queda para las subclases.
Visto así, en la teoría, me resulta sencillo. Veremos luego jeje
Conceptos vistos en el video
¿Qué es la herencia?
.
DRY: Don’t Repeat Yourself, consiste en promover la reducción de duplicación en programación. Ninguna pieza debe de ser duplicada debido a que aumenta la dificulta en los cambios y evolución.
.
Herencia, nos permite crear nuevas clases a partir de otras, teniendo una simulación de la vida real.
.
• Clase Padre, la encontraras también con el nombre de Supérclase, y la palabra de referencia que se ocupa dentro del código es: super.
• Clase Hijo, la encontraras también con el nombre de Subclase.
.
Recuerda: Cuando detectas características y comportamientos iguales, entonces significa que debes realizar una abstracción, herencia.
Me encantan sus curso, naciste con esa esencia de que todo lo que explicas sea fácil
Como en la vida cotidiana el padre siempre hereda algo a su hijo .
Buenas comporta ejemplo visual y sencillo que hice sobre la herencia basándome en los picos del juego minecraft
Estoy disfrutando mucho este curso
solo pienso en pokemon cuando dicen atributos jaja
Toda pieza de información nuca debería ser duplicada.
Pregunta usando este mismo ejemplo que da Anahí:
Es posible crear el método “Trabajar” en la clase padre y que la hereden las clases hijas en lugar de tener jugarPartido(), dirigirPartido() y darMasaje()?
💧DRY: Don´t repeat yourself
Es una filosofía que promueve la reducción de duplicación en la programación.
Toda pieza de información nunca debería ser duplicada debido a que la duplicación incrementa la dificultad en los cambios y evolución.
La herencia nos permitirá crear nuevas clases a partir de otras. O sea, vamos reutilizar código. Quiere decir, que vamos a hacer una abstracción para generar una súper clases general que después utilicemos para crear otras clases.
Recuerdos de Pakiman con Freddy en el curso de programación básica :3
Ciertamente es difícil deshacerse de los hábitos que deja la programación estructurada, pero la profesora hace que sea fácil y entendible con conceptos claros. Excelente.
Siii patrones de diseño!!!
Herencia:
Es esa gran forma de reutilizar el código.
Por ejemplo si tenemos una clase persona con atributos como nombre, teléfono, email, y métodos como cambiarEmail,cambarTelefono, y necesitamos crear un clase llamada cliente, esta clase puede heredar de la clase persona todos sus métodos y atributos y también puede tener sus propios atributos como podría ser numeroCliente.
Herencia: es la forma de compartir propiedades y comportamientos en común entre clases, para evitar especificarlas en cada clase y así hacer el código mas fácil de mantener
La reutilización y la herencia son claves para simplificar el código y sea más legible, consistente y evitar en lo posible la repetición de código.
Una SuperClase es aquella que tiene propiedades y comportamientos que estarán en otras Subclases, las hijas. >Asi eliminamos toda redundancia de datos.
muy buena explicación
“Don’t repeat tourself”
DRY: Don’t repeat yourself
Herencia
La herencia es uno de los conceptos fundamentales en programación orientada a objetos que permite a una clase heredar atributos y métodos de otra clase. La clase que hereda los atributos y métodos se conoce como la subclase o clase hija, mientras que la clase de la que se heredan los atributos y métodos se conoce como la superclase o clase padre.
En Java, se utiliza la palabra clave extends
para indicar que una clase hereda de otra clase. Aquí hay un ejemplo:
javaCopy code
public class Animal {
public void eat() {
System.out.println("The animal is eating.");
}
}
public class Dog extends Animal {
public void bark() {
System.out.println("The dog is barking.");
}
}
En este ejemplo, la clase Dog
hereda de la clase Animal
y tiene acceso al método eat()
de la clase Animal
.
En Python, la herencia se implementa mediante la definición de una clase que hereda de otra clase. Aquí hay un ejemplo:
pythonCopy code
class Animal:
def eat(self):
print("The animal is eating.")
class Dog(Animal):
def bark(self):
print("The dog is barking.")
En este ejemplo, la clase Dog
hereda de la clase Animal
y tiene acceso al método eat()
de la clase Animal
.
En JavaScript, la herencia se implementa mediante la definición de un objeto que hereda de otro objeto. Aquí hay un ejemplo:
javascriptCopy code
function Animal() {
this.eat = function() {
console.log("The animal is eating.");
}
}
function Dog() {
Animal.call(this);
this.bark = function() {
console.log("The dog is barking.");
}
}
En este ejemplo, la clase Dog
hereda de la clase Animal
utilizando el método call()
y tiene acceso al método eat()
de la clase Animal
.
En PHP, la herencia se implementa mediante la palabra clave extends
en la definición de una clase. Aquí hay un ejemplo:
phpCopy code
class Animal {
public function eat() {
echo "The animal is eating.";
}
}
class Dog extends Animal {
public function bark() {
echo "The dog is barking.";
}
}
En este ejemplo, la clase Dog
hereda de la clase Animal
y tiene acceso al método eat()
de la clase Animal
.
No me parece que seleccion sea clase padre yo haria una clase llamada persona
don’t repeat yourself!
prevent the duplication of code!
you should never duplicate code snippets, that makes implementing new functionality difficult!
Recordar sobre herencia que: la dirección de la flecha irá desde el hijo hasta el padre.
HERENCIA
Toda pieza de información nunca debería ser duplicada debido a que incrementa la dificultad en el seguimiento de los cambios y evolución del código de nuestro proyecto.
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. Para aplicar esta filosofía la POO nos brinda la herencia y la abstracción.
La herencia nos permite crear clases a partir de otras clases más generales implementando lo que se conoce como jerarquía de clases.
En la jerarquía de clases, el nivel superior se denomina super clase y contiene los atributos y comportamientos más generales que serán heredados por los niveles inferiores, las subclases. De esta forma evitamos tener que volver a definir los mismos atributos y comportamientos a clases similares y concentrarnos en las particularidades de cada una.
Siempre que se detecten características y comportamientos iguales debemos aplicar una abstracción, para objetos similares creamos una clase y para clases similares creamos una superclase. Cabe destacar que, aunque no hayan similitudes el contexto de negocio puede exigir una abstracción.
Información resumida de esta clase
#EstudiantesDePlatzi
Es importante analizar si tenemos atributos iguales dentro de nuestros objetos
Una de las leyes del código es “Don’t repeat yourself”
Es una filosofía que promueve la reducción de duplicación en la programación
Lo que buscamos es no tener líneas de código duplicado, ya que esta incrementa la dificultad en los cambios y evolución
No tener líneas de código duplicadas en lo posible y para lograr esto reutilizamos el código
La reutilización es uno de los principios en la programación orientada a objetos
La herencia es una pieza clave para reutilizar código y nos permite crear nuevas clases a partir de otra
En la herencia se establece una relación padre e hijo
Cuando realizamos un análisis e identificamos atributos similares, lo que buscamos es crear una sola clase principal que contenga estos atributos. Esta clase se llamará superclase
De la superclase pueden salir sub clases
La superclase es importantísima
Las clases hijas se conocen como sub clases
Cuando observo que tengo elementos repetidos, significa que debo mejorar esto, es decir, crear una superclase
RESUMEN CLASE 15:
QUE ES LA HERENCIA
I.- DRY: Don’t repeat yourself
Promueve la reducción de duplicación en programación
Toda pieza de información nunca debería ser duplicada debido a que la duplicación incrementa la dificultad en los cambios y evolución
II.- HERENCIA
crearemos nuevas clases a partir de otras
Se establece una relación padre e hijo
Superclase y subclase
III.- EJEMPLO:
es muy parecido cuando se grafica la relacion de las tablas que se hacen en SQL cuando se grafica sus relaciones, sus keys y demas.
DRY es una filosofía que promueve la reducción de duplicación en programación.
Por otra parte la herencia nos permitira crear clases apartir de otras. ( clases generales o super clases -“Padre” y subclases o “hijos”)
herencia
• La generalización es la relación entre una clase (superclase) y una o más versiones especializadas (subclases) de la misma.
– Los atributos y operaciones comunes a un grupo de subclases se asocian a la superclase y son compartidos por las subclases.
– Se dice que cada subclase hereda las características de su superclase, aunque también añade su propios atributos y operaciones específicos.
– La notación UML para la generalización es una flecha que conecta la superclase con sus subclases, apuntando a la superclase.
– Junto a la punta de flecha en el diagrama pueden colocarse un discriminador, un atributo de tipo enumeración que indica la propiedad de un objeto que se abstrae en una relación de generalización particular
Un principio o guía al momento de analizar donde aplicar la herencia es el principio “es un” por ejemplo Ejemplo: Estamos desarrollando un sistema para llevar el control dentro de una escuela, tanto de estudiantes, docentes, algunos atributos comunes entre los docentes y los alumnos son los datos personales aquello que cada persona tiene entre ellos están nombres, apellidos, fecha de nacimiento y así sucesivamente. Aplicando el principio “es un” para encontrar una clase que generalice de a estas dos diríamos que tanto el docente como el Alumno son “personas”, así creamos la clase persona de la cual heredan tanto el docente como el alumno, ya que el docente en ultima instancia es una persona y también el alumno. Cuando una clase hereda de pocas clases mas genérica es por eso en java la clase “Object” es la clase super cósmica de la cual heredan las demas y esta solamente tiene unos pocos métodos…
Yo el DRY lo aprendi como **DRYS **😅
Al crear una superclase, las sublcases solo tendrán propiedades y comportamientos que las distinguen de las demás.
Es el principio de la programacion modular ❤️
Java no permite la herencia multiple, osea que no se puede tener varios padres que den herencia o más bien la subclase solo puede heredar de una superclase.
2 meses con Java lo aprendi XD
la herencia es verficar y reutilizar el codigo, para aevitar el codigo espagueti
Generar una clase mas general entre las clases que repiten atributos (y tal vez metodos) para de ahi plantear mejor el problema
La herencia es un proceso mediante el cual se puede crear una clase hija que hereda de una clase padre, compartiendo sus métodos y atributos. Además de ello, una clase hija puede sobreescribir los métodos o atributos, o incluso definir unos nuevos. (Fuente: ellibrodepythom)
No repetir el código es un beneficio, pero la herencia se basa en el concepto de generalización y especialización que surge del análisis de los objetos que forman parte de una aplicación. En el caso planteado va mas allá de ver propiedades repetidas, esas propiedades corresponden a una generalización que es personas. En una aplicación de un hospital un empleado es una persona con numero de legajo, un medico es una persona con una matricula y una especialidad, un paciente es una persona con una historia clínica pero todos comparen atributos por ser personas. Si se hace un buen diseño no importa si hay un solo tipo de clase, si esta puede dividirse por generalización y especialización va a permitir la escalabilidad y el buen diseño incorporando nuevas clases sin rediseñar por duplicación de atributos. Cualquier característica adicional a una clase base (o padre) posterior a su implementación automáticamente será heredada.
Un ejemplo sencillo de herencia es lo que esta haciendo la profesora Anahí cuando TRANSMITE su conocimiento que ahora PASA a formar parte de nuestro propio conocimiento.
¿Como se maneja la herencia en bases de datos?
Hola
aqui te dejo una lectura para ejemplificar mas sobre la herencia :
https://www.netmentor.es/entrada/herencia-poo
La herencia se puede definir como el proceso en el que una clase adquiere las propiedades (métodos y campos) de otra. Con lo cual se permite crear nuevas clases a partir de otras, teniendo una simulación de la vida real.
DRY: Don’t Repeat Yourself: Consiste en promover la reducción de duplicación en programación. Ninguna pieza debe de ser duplicada debido a que aumenta la dificultad en los cambios y evolución.
Al hacer el análisis de clases es posible que se detecten características y comportamientos duplicados, por lo que se deber hacer un análisis de abstracción posterior para crear una clase que sea lo más general entre ellas. Dicha clase es la que permite generar nuevas clases a partir de ella, definiendo el concepto de Herencia.
La herencia establece una jerarquía, una relación padre e hijo:
También conocida como Superclase, y la palabra de referencia que se ocupa dentro del código es: Super.
También conocida como Subclase.
La HERENCIA imita a la herencia de la vida real, las propiedades o atributos pasarán de Padres a Hijos. Tendrán características comunes y comportamientos o métodos comunes. Existe una regla que se debería aplicar siempre la de:
Es un…
¿Un Jefe es un empleado?
¿Un Empleado es un Jefe?
La herencia nos permitirá reutilizar el código
La herencia es un tema clave para POO
¿En qué casos usamos herencia para las clases abstractas, en qué casos para las interfaces, y en qué casos solo se hereda normal?
Ejemplo creación superclase
Me trae recuerdos a las bases de datos
Ejemplo de Herencia, Superclase y subclases.
Don’t repeat yourself
1ra Ley del código/programción
DRY DON´T REPEAT YOURSELF
-Promueve la reducción de duplicación en programación.
Herencia
-Crea nuevas clases a partir de los elementos de otras.
-Establece una relación de padre e hijos (Superclase,subclase)
Aplicación en la vida real
Después de hacer nuestro primer análisis y plasmar gráficamente mediante un diagrama las clases, empezamos a buscar elementos en común en las clases, todo esto permite generar una abstracción a partir del resultado anterior para dar vida a una superclase.
yo estoy adelantando mi clase de universidad ya me imagino explicando mis profesores esto
Buena y clara explicación.
ahora si logre entender el tema de la Herencia !
Excelente Explicación !
Gran manera de explicar el concepto de Herencia.
dos puntos por terminar de ver el video :v
Muy buena explicación, voy comprendiendo de lo mejor!
OOP está muy a la mana con Database
📟
En relación a nuestro Sistema de Uber la herencia se aplicaría de esta forma.
Auto ->SúperClase
-UberX ->subclase
-UberPool ->subclase
-UberBlack ->subclase
-UberVan ->subclase
Pago ->SúperClase
-Card ->Subclase
-Paypal ->Subclase
-Cash ->Subclase
Mis aplausos profe se le entiende muy bien!
La herencia nos permite seguir con el principio de modularidad.
Don’t repeat yourself ❤️
La Herencia, nos permite crear nuevas clases a partir de otras. La herencia es clave para reutilizar lineas de código.
.
La Superclase hace referencia a que es la clase padre y La Subclase se define como hijo de la superclase.
.
Rima y todo: promueve la reducción de duplicación en programación.
tan difícil que era entender estos en la universidad! xd
Cuando dice leyes del codigo a que se refiere? y a que filosofia pertenece el concepto Don’t repeat yourself?
Me podrían aclarar el porque la clase Futbolista , Entrenador y Masajista heredan a la clase SeleccionFutbol 😦 ya se que es porque comparten los mismo metodos y atributos, pero mi intriga es por que la clase seleccionFutbol no es la que hereda a las demás
la herencia es uno de los pilares fundamentales de la programación orientada a objetos. Es el mecanismo por el cual una clase permite heredar las características (atributos y métodos) de otra clase.
me gusta mucho por que explica como mi mama y me hace dar ganas de seguir aprendiendo esta carajada de la programacionnnnn 😃 ANN es la mejorrrrrrrrr profe
nunca he entendido para que piden la edad, si cada año cambia? a caso no es mejor pedir fecha de nacimiento y calcular la edad??
Excelente explicacion…
Regla DRY Don't Repeat Yourself
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?