🚀 HERENCIA en JAVA | 🤔| Programación Orientada a Objetos con Java 🖥️ | Explicación FÁCIL 2023 | #6

TodoCode
7 Nov 202111:59

Summary

TLDREn este video, el creador continúa su serie sobre programación orientada a objetos en Java, enfocándose en la herencia. Explica cómo las clases pueden heredar atributos y métodos de clases 'madre' o 'padre', comparándolo con la herencia genética en la vida real. A través de ejemplos prácticos, muestra cómo implementar herencia en Java, creando subclases como 'Empleado' y 'Consultor' que heredan de la clase 'Persona'. También destaca la importancia de los constructores y métodos getter y setter en el proceso. El video es parte de una serie educativa diseñada para ayudar a los espectadores a dominar conceptos clave de programación en Java.

Takeaways

  • 🎥 El video aborda la programación orientada a objetos en Java, enfocándose en la herencia.
  • 📚 La herencia permite a las clases compartir atributos y métodos comunes de una clase madre o padre.
  • 👨‍👩‍👧‍👦 La herencia en programación es similar a la herencia genética, donde los hijos heredan atributos y comportamientos de sus padres.
  • 🛠️ Las nuevas clases creadas a partir de una clase madre se denominan subclases o clases hijas.
  • 🏢 Se utiliza un ejemplo de clases en una empresa, donde 'Empleado' y 'Consultor' heredan de la clase 'Persona'.
  • 🔧 En Java, la palabra clave 'extends' se usa para que una clase herede de otra.
  • ⚙️ Al heredar, las subclases pueden añadir sus propios atributos y métodos además de los heredados.
  • 📝 El constructor de la subclase puede recibir parámetros tanto para los atributos heredados como para los propios.
  • 💻 La palabra reservada 'super' en Java se utiliza para llamar al constructor de la clase madre dentro de la subclase.
  • 🔍 Los métodos y atributos heredados pueden ser utilizados directamente en las subclases, incluso si no están explícitamente definidos en ellas.

Q & A

  • ¿Cuáles son los pilares principales de la programación orientada a objetos mencionados en el video?

    -Los pilares principales mencionados son la abstracción, el encapsulamiento, el polimorfismo y la herencia.

  • ¿Cómo se define la herencia en la programación orientada a objetos, según el video?

    -La herencia se define como la capacidad de una clase para compartir atributos y métodos con otras clases, similar a cómo se heredan características genéticas en la vida real.

  • ¿Qué ejemplo usa el video para explicar la herencia en la vida real?

    -El ejemplo usado es el de un hijo que hereda características físicas y comportamientos de sus padres, como el color de piel o habilidades, como jugar tenis o cuidar animales.

  • ¿Qué relación se establece entre las clases 'Empleado', 'Consultor' y 'Persona' en el video?

    -Las clases 'Empleado' y 'Consultor' son subclases que heredan atributos y métodos de la clase madre 'Persona'.

  • ¿Cómo se implementa la herencia en Java, según lo explicado en el video?

    -La herencia se implementa usando la palabra clave 'extends' después del nombre de la clase hija y antes del nombre de la clase madre.

  • ¿Qué sucede cuando una subclase hereda métodos y atributos de una clase madre?

    -La subclase adquiere los métodos y atributos de la clase madre, permitiendo que los utilice como si fueran propios.

  • ¿Qué hace la palabra reservada 'super' en el contexto de herencia en Java?

    -La palabra 'super' se usa para llamar al constructor de la clase madre y asignar valores a los atributos heredados.

  • ¿Cómo se gestionan los métodos 'getter' y 'setter' en una clase que hereda de otra?

    -La clase hija puede generar sus propios 'getter' y 'setter' para sus atributos, y también puede reutilizar o modificar los métodos heredados de la clase madre.

  • ¿Qué muestra el video al crear un objeto de la clase 'Empleado' en el 'main'?

    -Muestra que, al crear un objeto de la clase 'Empleado', se pueden utilizar métodos heredados de 'Persona' como 'getApellido', aunque no estén definidos explícitamente en 'Empleado'.

  • ¿Qué recomendaciones da el presentador al final del video para apoyar la serie de programación orientada a objetos en Java?

    -El presentador recomienda dejar 'me gusta', comentar el video, seguir en redes sociales y explorar los cursos gratuitos disponibles en la academia.

Outlines

00:00

😀 Introducción a la Programación Orientada a Objetos en Java

El primer párrafo presenta un nuevo video sobre programación orientada a objetos en Java. La locutora, Soy Vecina, recuerda los pilares fundamentales de la POO, incluyendo la abstracción, el encapsulamiento, el polimorfismo, la herencia y la representación de aplicaciones mediante UML. Se invita al espectador a interactuar a través de 'me gusta', comentarios y seguimiento en redes sociales para apoyar el crecimiento del canal. La sección inicia con una revisión de las características de la herencia, comparándola con la herencia genética, y se ilustra con un ejemplo de clases como 'Persona', 'Empleado' y 'Consultor', donde se muestra cómo se heredan atributos y métodos de una clase padre.

05:03

📘 Implementación de la Herencia en Clases Java

El segundo párrafo se enfoca en la implementación práctica de la herencia en Java. Se describe el proceso de crear una clase 'Persona' como superclase y luego extender esta para crear subclases 'Empleado' y 'Consultor'. Se detalla cómo se agregan atributos específicos a las subclases y cómo se generan constructores que incluyen atributos heredados y nuevos. Además, se muestra cómo se utilizan los métodos 'super' para llamar a los constructores de la clase padre y cómo se implementan los getters y setters tanto heredados como específicos de la subclase. Se hace una demostración con un objeto 'Empleado', resaltando cómo se acceden a los métodos heredados y los propios de la clase.

10:05

🔄 Herencia y Métodos en Clases Java: Ejemplo de Consultor

El tercer párrafo continúa con el tema de la herencia, pero esta vez se centra en la implementación de una subclase 'Consultor'. Se describe cómo se agregan atributos específicos a esta clase, como 'consultora' y 'número de consultor', y cómo se generan los constructores y los getters y setters. Se ilustra cómo, al igual que con la clase 'Empleado', los métodos heredados de la clase 'Persona' están disponibles para la clase 'Consultor'. Se crea un objeto 'Consultor' y se muestra cómo se acceden a sus métodos propios y heredados, enfatizando cómo la herencia permite reutilizar código y estructuras de datos comunes.

Mindmap

Keywords

💡Programación Orientada a Objetos (POO)

La Programación Orientada a Objetos (POO) es un paradigma de programación que utiliza 'objetos' para representar datos y métodos. En el video, se menciona como el tema central y se destacan sus pilares principales, como la abstracción, el encapsulamiento, el polimorfismo y la herencia, que son esenciales para entender cómo funciona POO en Java.

💡Herencia

La herencia es un concepto de POO que permite a una clase heredar atributos y métodos de otra clase. En el video, se compara con la herencia genética en la vida real, explicando que una clase hija puede tener atributos y comportamientos de su clase madre. Por ejemplo, una clase 'Empleado' puede heredar atributos de una clase 'Persona'.

💡Clase

Una clase es una plantilla para crear objetos en POO, definiendo atributos y métodos. En el video, se utilizan clases como 'Empleado', 'Consultor' y 'Persona' para explicar cómo se estructuran y cómo pueden heredar características entre sí.

💡Atributos

Los atributos son variables que almacenan datos específicos de un objeto. En el video, se explica cómo las clases 'Empleado' y 'Consultor' heredan atributos como 'nombre' y 'apellido' de la clase 'Persona', y también cómo pueden tener sus propios atributos específicos como 'número de legajo' o 'nombre de consultora'.

💡Métodos

Los métodos son funciones que realizan acciones específicas en los objetos. En el video, se menciona cómo las clases hijas pueden heredar métodos de la clase madre. Por ejemplo, los métodos 'getApellido' y 'getDni' en la clase 'Empleado' son heredados de la clase 'Persona'.

💡Abstracción

La abstracción es uno de los pilares de la POO que se enfoca en ocultar los detalles complejos y mostrar solo la información esencial. En el video, se menciona como una característica clave de la POO, permitiendo a los programadores manejar la complejidad del software de manera más eficiente.

💡Encapsulamiento

El encapsulamiento es otro pilar de la POO que consiste en restringir el acceso directo a algunos componentes de un objeto, protegiendo así los datos y métodos internos. En el video, se menciona que esta característica ayuda a mantener la integridad de los datos y facilita el mantenimiento del código.

💡Polimorfismo

El polimorfismo es un principio de la POO que permite a los objetos de diferentes clases ser tratados como objetos de una clase común. En el video, se menciona como una característica fundamental que facilita la reutilización de código y la implementación de comportamientos dinámicos en las aplicaciones Java.

💡Superclase

Una superclase es una clase de la cual otras clases heredan atributos y métodos. En el video, 'Persona' es una superclase de 'Empleado' y 'Consultor', proporcionando atributos comunes como 'nombre' y 'apellido'. La palabra clave 'super' se utiliza para referirse a la superclase dentro de las subclases.

💡Subclase

Una subclase es una clase que hereda de otra clase, conocida como superclase. En el video, 'Empleado' y 'Consultor' son subclases de 'Persona', heredando sus atributos y métodos. Las subclases pueden tener atributos y métodos adicionales específicos que no están presentes en la superclase.

Highlights

Introducción a un nuevo video sobre programación orientada a objetos en Java.

Recordatorio de los pilares de la programación orientada a objetos: abstracción, encapsulamiento, polimorfismo, herencia y uso de UML.

Empezo con la explicación de la herencia en la programación orientada a objetos, comparándola con la herencia genética.

Definición de herencia como compartir características entre clases que pertenecen al mismo tipo de objeto.

Ejemplo práctico de herencia: heredar atributos y comportamientos de una 'clase madre' a una 'clase hija'.

Representación de la herencia en Java mediante la palabra reservada 'extends'.

Creación de una clase 'Persona' como superclase con atributos y métodos básicos.

Implementación de la herencia en las clases 'Empleado' y 'Consultor', heredando de 'Persona'.

Explicación de cómo se crean constructores en las subclases, incluyendo atributos heredados y propios.

Uso de la palabra reservada 'super' para llamar al constructor de la clase padre y asignar atributos heredados.

Demostración de cómo se heredan y se pueden personalizar los métodos de la clase padre en las subclases.

Creación de objetos de las subclases y acceso a sus métodos heredados y propios.

Ejemplo de cómo los métodos heredados de la clase 'Persona' están disponibles en 'Empleado' y 'Consultor'.

Discusión sobre la posibilidad de redefinir métodos heredados en las subclases.

Importancia de entender la herencia para modelar aplicaciones y representar relaciones entre objetos.

Agradecimiento a la audiencia y promoción de los cursos gratuitos en la academia.

Invitación a seguir el canal y redes sociales para novedades y cursos de programación.

Anuncio de un próximo curso de Java para principiantes en la plataforma.

Despedida y promesa de seguir compartiendo contenido en programación orientada a objetos.

Transcripts

play00:00

soy vecina y bienvenidos a un nuevo

play00:02

vídeo en donde todo loco

play00:07

[Música]

play00:13

por ejemplo el vídeo de hoy vamos a

play00:16

continuar con la programación orientada

play00:18

a objetos en java y vamos a recordar un

play00:21

poquito cuáles eran los pilares o las

play00:24

principales características que tiene la

play00:25

programación orientada a objetos si te

play00:27

gusta esta serie no te olvides dejar tu

play00:29

me gusta acá abajo tu comentario que nos

play00:31

ayuda un montonazo a seguir creciendo

play00:33

youtube además de seguirnos en nuestras

play00:35

redes sociales en instagram en twitter y

play00:38

en facebook donde vas a ver todas las

play00:40

novedades que vayamos subiendo tanto en

play00:42

la academia como en el canal bien dicho

play00:44

esto vamos a repasar las características

play00:46

habíamos dicho que tenemos a la

play00:48

abstracción el encapsulamiento al

play00:50

polimorfismo a la herencia y a la

play00:52

posibilidad de representar nuestras

play00:54

aplicaciones mediante ml hoy vamos a

play00:56

empezar con una de las más importantes y

play00:58

más conocidas y que a veces puede ser

play01:00

bastante complicada entender qué es la

play01:03

herencia bien vamos a ver rapidito la

play01:06

definición teórica que tiene herencia

play01:09

básicamente es la misma idea de la

play01:12

herencia en la vida real vamos a decir

play01:13

la herencia genética voy a subir un

play01:15

poquito a la imagen arriba así no les

play01:17

tapó a ustedes que puedan leer el texto

play01:19

si quieren leerlo si básicamente lo que

play01:22

dice la herencia es que hay clases que

play01:24

pueden compartir entre sí un montón de

play01:26

características porque tienen cosas en

play01:27

común o que porque pertenecen a un mismo

play01:29

tipo de objeto o algo por el estilo si

play01:32

así como la vida real

play01:34

tenemos un papá o una mamá biológico y

play01:37

nosotros al ser hijos biológicos de esa

play01:39

persona heredamos atributos heredamos

play01:42

comportamientos bien por ejemplo mi papá

play01:45

es morocho mi mamá rubia yo que tenga la

play01:48

piel blanca de mi mamá y tengo el pelo

play01:51

oscuro de mi papá y eso no puedo hacer

play01:52

nada porque es herencia genéticamente

play01:55

heredé eso de igual manera mi papá es

play01:58

bueno jugando al tenis y mi mamá es muy

play02:00

buena por ejemplo haciendo peluquería

play02:02

canina que su profesión y bueno yo juego

play02:05

bastante bien al tenis creo y al mismo

play02:07

tiempo también creo que tengo ciertas

play02:08

habilidades de peluquería canina o de

play02:10

amor por los animales que me transmitió

play02:11

mi mamá esos son mis comportamientos

play02:14

cuando hablamos de clase estamos

play02:15

hablando de métodos que heredamos de las

play02:18

clases madres o padres y lo mismo sucede

play02:20

con los atributos y si una clase madre

play02:23

tiene nombre y apellido de su clase hija

play02:25

también va a tener un nombre y un

play02:27

apellido bien ahora estas nuevas clases

play02:31

que podemos crear a partir de otras que

play02:33

son consideradas como clases madres o

play02:34

padres las nuevas son obvias como

play02:37

subclases o también en la jerga que es

play02:39

utilizando los programadores como clases

play02:41

hijas pero ahora van a decir profe bueno

play02:43

ya sé que puedo tener una clase madre o

play02:46

padre a partir de eso puedo tener clases

play02:48

hijas que pueden ser hermanas entre sí

play02:50

que van a compartir atributos con esa

play02:52

clase padre o madre

play02:54

pero como represento esto como me doy

play02:56

cuenta fíjense este ejemplo vamos a

play02:58

suponer que para un sistema como les

play03:00

muestro acá si tengo una clase empleada

play03:04

de una clase consultor ambos son tipos

play03:06

de personas dentro de una empresa pero

play03:07

tienen ciertas acciones diferentes que

play03:10

pueden hacer y ciertos atributos

play03:11

diferentes entre sí pero tienen cosas en

play03:13

común también entre sí que son las cosas

play03:15

que tiene cualquier persona mientras que

play03:18

un empleado común y corriente además de

play03:21

esto puede tener por ejemplo número de

play03:23

legajo o puesto de empleado qué cargo

play03:26

tiene y de igual manera un consultor un

play03:29

consultor sigue siendo una persona tiene

play03:31

los atributos una persona pero además de

play03:33

esto por ejemplo puede tener la empresa

play03:36

consultora a la que pertenece shuaibi de

play03:38

consultor o su matrícula y demás elías

play03:41

la hace diferente su clase hermana

play03:43

empleado sin embargo al heredar de la

play03:45

misma clase madre en este caso persona

play03:48

lo que está heredando también son todos

play03:50

los atributos propios de personas los

play03:52

análisis y vamos a ver cómo

play03:53

implementamos la herencia bien chicos

play03:56

esta moción es bing si van a ver que

play03:57

tengo un proyecto bases a pre armado

play04:00

donde tengo una clase consultor que está

play04:03

vacía si no tengo nada implementado

play04:04

todavía una clase empleado sin nada

play04:07

implementado todavía y una clase de

play04:09

persona que basa nuestra clase madre o

play04:11

padre o superclase como quieran llamarla

play04:13

que tiene estos atributos haití y dni

play04:16

nombre apellidos domicilio teléfono

play04:18

tiene su constructor y tiene sus

play04:20

respectivos wieters etcétera lo que

play04:23

vamos a hacer una más empezar a

play04:24

implementar la herencia bien lo que voy

play04:26

a hacer es que tanto empleado como

play04:29

consultor hereden de persona como hago

play04:32

esto de la siguiente manera me voy a

play04:34

empleado y luego del nombre de la clase

play04:36

tengo que agregar la palabra reservada

play04:39

extensa y el nombre de la clase la cual

play04:41

extiende o hereda en este caso persona

play04:44

una vez hecho esto ya establece esa

play04:47

relación entre empleado y persona y lo

play04:50

mismo voy a hacer

play04:51

consultor extenso

play04:55

consultor y consultor no perdón persona

play04:59

alta y qué voy a hacer ahora en empleado

play05:03

voy a crear sus atributos propios cuáles

play05:06

van a ser sus atributos propios de

play05:07

empleado ahora vamos a suponer además de

play05:10

todo lo que va a heredar de personas

play05:11

balear todo esto sí ahí di nombre

play05:14

apellido y demás vamos a decir que el

play05:17

empleado tiene también

play05:19

un número de legajo y un número de

play05:22

legajo

play05:23

tiene también

play05:25

un cargo vamos a suponer que tiene por

play05:28

ejemplo un sueldo vamos a suponer que

play05:31

tiene todo eso bien a partir de eso que

play05:33

son sus atributos propios vamos a

play05:35

empezar a crear los constructores

play05:38

fíjense que acá empieza el show vamos a

play05:41

crear primero el constructor vacío así

play05:44

que no tiene nada y fíjense que ahora a

play05:46

la hora de crear el constructor con

play05:47

parámetros nos detecta la herencia y nos

play05:50

muestra un constructor con los atributos

play05:53

que hereda de su clase madre o padre sí

play05:56

que la vamos a tener acá y luego podemos

play05:59

seleccionar además de esos atributos

play06:01

heredados los atributos que son propios

play06:03

de la clase que estamos creando que es

play06:05

empleado voy a seleccionar todo y

play06:09

fíjense cómo nos crea nuestro

play06:12

constructor voy a alejar un poquito para

play06:13

que lo puedan ver todo voy a poner la

play06:15

cara uno abajo del otro así lo pueden

play06:17

ver mejor fíjense cómo funciona me dice

play06:21

que empleado va a recibir un número de

play06:23

legajo un cargo y un sueldo que son sus

play06:25

atributos propios pero además de esto va

play06:27

a recibir una id y un dni un nombre un

play06:30

apellido un domicilio y un teléfono y

play06:33

banesto pero de dónde saca esto si esto

play06:35

acá no está como atributo

play06:37

la mente lo trae a través de la herencia

play06:40

de su clase madre y como hace la

play06:43

asignación de cada uno estos atributos

play06:45

fíjense número de legajo cargo y sueldo

play06:49

lo hace la asignación con un método

play06:51

constructor como lo hacemos siempre

play06:53

mientras que los atributos que son

play06:56

heredados lo que hace es la asignación

play06:58

mediante esta palabra especial reservada

play07:01

llamada super lo que hace con esto es

play07:04

recibe los datos que tiene acá y ama la

play07:06

clase madre y le dice estos son los

play07:09

valores que tenés que asignar es como si

play07:12

estuviera llamando al constructor en

play07:15

este caso a él era el clic de la clase

play07:18

madre que es esto mediante súper lo

play07:21

mismo sucede cuando queramos hacer los

play07:24

geisers fíjense como nos aparece además

play07:28

de los getter y setters propios del

play07:30

empleado no aparece si también queremos

play07:33

implementar de forma diferente los que

play07:35

hereda de personas esto es si nosotros

play07:37

queremos hacer una nueva implementación

play07:38

de los gaiters y de los seteros bien en

play07:42

este caso yo voy a hacer todo lo de

play07:44

empleados voy a poner generate y fíjense

play07:47

como tengo todos mis wieters y setters

play07:50

propios ahora vamos a hacer una prueba

play07:52

voy a venir al mail

play07:55

y voy a crear un objeto de tipo empleado

play07:58

fíjense empleado emplee igual new

play08:03

empleado y les voy a mostrar un detalle

play08:05

a tener en cuenta si fíjense si se ha

play08:09

empleado si quiero llamar a un método

play08:12

propio por ejemplo ya número de legajo

play08:16

lo puedo hacer bien es un método que yo

play08:20

lo implemente acá get número de legajo y

play08:23

es un método propio de empleado su

play08:25

estudio está en el main y lo puedo

play08:27

llamar sin ningún problema pero fíjense

play08:28

si pongo emple punto y pongo get fíjense

play08:33

como aparece get apellido y dni que

play08:37

domicilio voy a decir profe pero esos

play08:39

métodos en empleado no están tengo esos

play08:44

métodos porque me aparecen porque son

play08:46

métodos heredados de persona entonces

play08:48

automáticamente cuando establecimos la

play08:51

herencia ya estuvimos diciendo que

play08:53

empleado va a poder tener esos mismos

play08:56

métodos que tiene personas y acá

play08:58

personas tuviera un método que fuese no

play09:00

sé bailar sí

play09:02

también lo tendría si por qué porque es

play09:06

hija de personas se entiende entonces

play09:08

acá si yo quisiera poner 10 nombre por

play09:11

ejemplo para traer el nombre podría

play09:14

utilizarlo tranquilamente porque porque

play09:16

al ser empleado hijo de persona tiene

play09:19

ese método incorporado también se

play09:22

entiende ahora lo mismo sucedería si yo

play09:25

quiero implementar en consultor o no a

play09:27

suponer que consultor tiene string

play09:29

nombre

play09:31

consultora y además de esto tiene string

play09:35

no vamos a poner el int

play09:38

un número de consultor vamos a suponer

play09:41

que tenemos todos datos tranquilamente

play09:43

acá voy a hacerlo rápido lo que puedo

play09:45

hacer es generar el constructor vacío

play09:48

también generar el constructor con

play09:52

parámetros tanto propios como heredados

play09:55

fíjense cómo aparecen super y lo mismo

play09:58

con los gaiters y setters puedo elegir

play10:01

los grises que son míos propios y sin

play10:04

necesidad de seleccionar los de triste

play10:06

ters heredados que son de mi clase madre

play10:09

se los voy a poder utilizar fíjense

play10:12

vamos a aprobar acá voy a crear un

play10:14

objeto nuevo de consulta dor

play10:16

agrega consultor cónsul igual new

play10:20

consultor

play10:23

ahí está

play10:25

y fíjense cómo sitúa con su le pongo el

play10:27

puntito y pongo get me aparece en sus

play10:31

métodos propios por ejemplo que el

play10:33

número consultado bien

play10:36

de eso sí pongo get me aparecen también

play10:39

los métodos heredados que apellido que

play10:42

el domicilio que el dni y el nombre que

play10:44

si nosotros vamos a nuestra clase

play10:46

consultor no están pero si están en

play10:50

persona que es la clase de la cual

play10:52

heredamos de esta manera fíjense como

play10:54

tanto empleado como consultor sin tener

play10:58

estos métodos o estos atributos

play11:00

declarados dentro de su clase mediante

play11:04

el extenso están heredando todo desde

play11:06

personas por gente hizo fotos bro espero

play11:09

que les haya gustado continuamos con

play11:10

todo esto que tiene que ver a este un

play11:11

cupo acá arriba está un toro del vino mi

play11:14

pelo

play11:16

espero calidad es adoptado pero que se

play11:17

haya entendido y que les siga gustando

play11:19

leer mucho apoyo esta serie de

play11:21

programaciones de objetos con java que

play11:22

si bien ésta ha tenido bastantes

play11:24

reproducciones necesitamos de sus me

play11:26

gusta necesitamos sus comentarios para

play11:27

que los vídeos crezcan y realmente valga

play11:29

la pena y llega muchísimas personas si

play11:31

no son bendiciones de nuestras redes

play11:32

sociales de entrar a la toco academy

play11:35

probar los cursos gratuitos que tenemos

play11:36

donde prontito sobre va a estar el curso

play11:38

java para principiantes también que lo

play11:40

venimos trabajando hace rato en la plata

play11:42

así que nos vemos en un próximo vídeo en

play11:44

donde en todo

play11:47

chau chau

play11:47

[Música]

play11:54

en verde

play11:57

[Música]

Rate This

5.0 / 5 (0 votes)

Related Tags
Programación JavaPOOHerenciaClases JavaDesarrolloJavaTutorialPrincipiantesCodificaciónMetodología
Do you need a summary in English?