Herencia en Java

00:12:53
https://www.youtube.com/watch?v=CYNLhg42O9c

Zusammenfassung

TLDREn este tutorial, Jorge explica el concepto de herencia en programación orientada a objetos utilizando Java. La herencia permite que una clase (hija) herede propiedades y métodos de otra clase (padre). Se presentan ejemplos prácticos con las clases "Carro", "BMW" y "Toyota" para ilustrar cómo se pueden crear jerarquías de clases y reutilizar código en la creación de objetos relacionados. También se discuten las ventajas de la herencia, como la simplificación del código y la creación de múltiples niveles de herencia.

Mitbringsel

  • 👨‍💻 La herencia permite a las clases heredar propiedades y métodos.
  • 🚗 Ejemplo de herencia con clases Carro, BMW y Toyota.
  • 🔄 Reutilización de código ahorra tiempo y reduce errores.
  • 🥇 Una clase solo puede extender de una clase padre a la vez.
  • 🔍 Métodos heredados están disponibles en la clase hija.
  • 🛠 Se pueden crear múltiples niveles de herencia.
  • 📜 Los constructores inicializan las propiedades de las clases.
  • 🔒 Métodos privados no se heredan a la clase hija.
  • 🧩 Extender de otras clases crea jerarquías de objetos.
  • 🎓 Comprender la herencia es fundamental para programadores.

Zeitleiste

  • 00:00:00 - 00:05:00

    En este tutorial, se aborda el concepto de herencia dentro de la programación orientada a objetos en Java. El presentador, Jorge, explica que la herencia permite que un objeto herede propiedades y métodos de otro objeto, formando una jerarquía. A través del ejemplo de la clase 'Carro' y su subclase 'BMW', se ilustra cómo una clase hija puede heredar características de su clase padre, optimizando la reutilización de código en Java.

  • 00:05:00 - 00:12:53

    Además, Jorge muestra cómo se pueden crear otras clases, como 'Carro Toyota', que también heredan de 'Carro'. A lo largo del tutorial, enfatiza que aunque los objetos pueden tener múltiples derivados, cada clase sólo puede extender de una clase padre. Se concluye destacando la importancia de la herencia para la organización y eficiencia del código, así como la identificación de métodos que pertenecen a diferentes clases.

Mind Map

Video-Fragen und Antworten

  • ¿Qué es la herencia en programación orientada a objetos?

    La herencia permite que un objeto herede propiedades y métodos de otra clase, estableciendo una jerarquía.

  • ¿Cómo se declara una clase que hereda de otra en Java?

    Se utiliza la palabra clave 'extends', como en 'class BMW extends Carro'.

  • ¿Cuáles son las ventajas de usar la herencia?

    La principal ventaja es la reutilización de código, lo que simplifica la programación.

  • ¿Se pueden tener múltiples niveles de herencia?

    Sí, se pueden crear múltiples generaciones de clases que heredan de clases entre sí.

  • ¿Qué es un método?

    Un método es una función que define un comportamiento de una clase.

  • ¿Puede una clase en Java heredar de más de una clase?

    No, una clase en Java solo puede extender de una única clase.

  • ¿Qué métodos hereda una clase hija de su clase padre?

    La clase hija hereda todos los métodos y propiedades públicos y protegidos de la clase padre.

  • ¿Qué ocurre si se agrega un método nuevo en una clase hija?

    El método nuevo solo estará disponible en la clase hija y no afectará a la clase padre.

  • ¿Cómo se accede a un método de la clase padre desde la clase hija?

    Se puede acceder directamente utilizando la instancia de la clase hija.

  • ¿Es obligatorio tener constructores en las clases?

    No es obligatorio, pero se recomienda definir constructores para inicializar las propiedades.

Weitere Video-Zusammenfassungen anzeigen

Erhalten Sie sofortigen Zugang zu kostenlosen YouTube-Videozusammenfassungen, die von AI unterstützt werden!
Untertitel
es
Automatisches Blättern:
  • 00:00:00
    [Música]
  • 00:00:10
    Hola qué tal a todos Cómo están
  • 00:00:12
    Bienvenidos a este nuevo tutorial del
  • 00:00:14
    curso de Java de código facilito Mi
  • 00:00:16
    nombre es Jorge y Bueno pues el día de
  • 00:00:19
    hoy Vamos a continuar con la
  • 00:00:20
    programación orientada a objetos vamos a
  • 00:00:22
    ver
  • 00:00:23
    específicamente lo que es el concepto de
  • 00:00:26
    herencia bien bueno en programación
  • 00:00:28
    orientada objetos hay varios conceptos
  • 00:00:30
    este característicos de de ese tipo de
  • 00:00:33
    programación como lo es la herencia eh
  • 00:00:36
    otro sería por ejemplo el polimorfismo y
  • 00:00:39
    bueno entre otros pero vamos a a
  • 00:00:42
    simplificar eso y vamos a verlo más
  • 00:00:44
    tranquilamente vamos a ver únicamente
  • 00:00:46
    herencia en la sesión de hoy Y luego
  • 00:00:49
    como se supone que este es un curso para
  • 00:00:52
    principiantes o o básico eh Bueno pues
  • 00:00:55
    vamos a dejar todo todos los demás
  • 00:00:57
    conceptos por un lado y vamos a a pues
  • 00:01:00
    ahora sí que enfocarnos únicamente en
  • 00:01:02
    eso de la herencia y bien bueno Qué es
  • 00:01:04
    la herencia la herencia es
  • 00:01:06
    básicamente el decir de que un objeto en
  • 00:01:10
    en Java puede heredar o
  • 00:01:15
    este propiedades o
  • 00:01:18
    características sea del mismo a otro
  • 00:01:20
    tipo de objetos siguiendo como una
  • 00:01:23
    jerarquía entonces bien si bien en el
  • 00:01:25
    tutorial pasado eh creamos una clase que
  • 00:01:28
    se llama carro como pueden ver aquí
  • 00:01:30
    estoy ubicado en el archivo de la clase
  • 00:01:32
    de carro y en la parte de abajo he
  • 00:01:36
    creado esta pequeña esta pequeña clase
  • 00:01:39
    eh No es una clase que diga public Class
  • 00:01:42
    simplemente es una clase normal y
  • 00:01:46
    colocamos carro BMW y nótese que aquí
  • 00:01:50
    tengo esta palabra que dice
  • 00:01:52
    extends carro y bien qué es lo que
  • 00:01:55
    estamos diciendo Bueno lo que estamos
  • 00:01:57
    diciendo básicamente es que esta nueva
  • 00:02:00
    clase es un nuevo tipo de objeto es un
  • 00:02:03
    nuevo objeto que no es un carro pero es
  • 00:02:05
    es una especie de objeto que Eh pues es
  • 00:02:09
    un hijo de lo que es el carro o sea es
  • 00:02:12
    otro tipo es un carro diferente en es
  • 00:02:15
    caso pues es BMW y esto de extend quiere
  • 00:02:19
    decir que extiende que la clase padre o
  • 00:02:22
    o la clase principal pues ahora sí el
  • 00:02:25
    padre de de esta clase BMW es el carro
  • 00:02:29
    porque pues obviamente sabemos que un
  • 00:02:31
    carro de tipo BMW puede ser un carro
  • 00:02:35
    pero un carro cualquiera No
  • 00:02:37
    necesariamente tiene que ser BMW y esto
  • 00:02:41
    lo que hace es que básicamente Bueno
  • 00:02:42
    pues Aquí tengo como pueden ver nada más
  • 00:02:44
    tengo un constructor que lo que hace Es
  • 00:02:48
    que este modelo es igual a
  • 00:02:51
    BMW y luego tenemos un método aquí que
  • 00:02:55
    dice Turbo que simplemente Bueno es un
  • 00:02:58
    método especial de esta clase BMW que yo
  • 00:03:01
    le he colocado nada más un mensaje
  • 00:03:03
    acabas de viajar a 100 millas por hora
  • 00:03:05
    pues nada más un mensaje que dice que
  • 00:03:09
    pues el BMW es rápido verdad eh Pero
  • 00:03:12
    bueno entonces la característica de esas
  • 00:03:15
    clases que extienden a otras Es que
  • 00:03:17
    heredan todas sus propiedades y sus
  • 00:03:20
    métodos por ejemplo el carro BMW va a
  • 00:03:23
    heredar todas estas características y
  • 00:03:26
    pues todos estos este ahora sí que estos
  • 00:03:29
    métodos que aparecen aquí sin necesidad
  • 00:03:32
    y no tengo necesidad de escribirlos
  • 00:03:34
    nuevamente sino que estoy reutilizando
  • 00:03:37
    el código es una de las ventajas de Java
  • 00:03:39
    la reutilización de código Entonces
  • 00:03:41
    vamos a irnos a nuestra clase principal
  • 00:03:43
    la clase Main y bueno vamos a borrar lo
  • 00:03:45
    que teníamos
  • 00:03:47
    antes
  • 00:03:48
    eh Como pueden ver Bueno aquí Este estoy
  • 00:03:51
    creando un carro ese carro pues es la
  • 00:03:54
    variable c pero ahora en vez de decir c
  • 00:03:57
    ig a New carro
  • 00:04:00
    vamos a decir que c es igual a New carro
  • 00:04:07
    BMW como pueden ver no hay error este lo
  • 00:04:10
    que estoy creando pues es
  • 00:04:11
    específicamente un carro pero el carro
  • 00:04:14
    que estoy creando no es un carro normal
  • 00:04:16
    sino que es un carro
  • 00:04:18
    BMW es una es un objeto diferente
  • 00:04:21
    Entonces no va a ser un poco diferente a
  • 00:04:24
    a lo anterior y pues yo puedo acceder a
  • 00:04:27
    ciertas características que tenemos por
  • 00:04:29
    ejemplo
  • 00:04:30
    este
  • 00:04:34
    Apagar eh
  • 00:04:39
    encender y el
  • 00:04:43
    método al método Turbo Entonces vamos a
  • 00:04:47
    buscarlo por
  • 00:04:49
    aquí aquí no
  • 00:04:53
    aparece
  • 00:04:56
    escribirlo public Boy turbo
  • 00:05:03
    está marcando un error simplemente Bueno
  • 00:05:05
    vamos a convertir mejor esto
  • 00:05:06
    directamente a a
  • 00:05:09
    BMW OK OK ahora sí bien este corrección
  • 00:05:13
    la forma ideal de declararlo
  • 00:05:14
    inicialmente pues es es esta no vamos a
  • 00:05:17
    declararlo inicialmente como carro BMW y
  • 00:05:20
    luego c ig New carro BMW para que no nos
  • 00:05:22
    genere
  • 00:05:23
    errores muy bien Bueno como pueden ver
  • 00:05:26
    este si yo coloco C punto me van a
  • 00:05:30
    aparecer estos métodos que pues son de
  • 00:05:33
    la clase carro como pueden ver de la
  • 00:05:36
    parte derecha aquí me aparecen las
  • 00:05:37
    variables dice carro carro que pertenece
  • 00:05:40
    a a la clase carro sin embargo si yo me
  • 00:05:43
    voy más abajo me va a aparecer por
  • 00:05:45
    ejemplo es que dice carro BMW que es
  • 00:05:47
    Turbo que ya es nativa de de lo que es
  • 00:05:49
    el
  • 00:05:50
    BMW Y bueno pues como ya no tengo más ya
  • 00:05:54
    no he escrito más métodos
  • 00:05:55
    característicos Pues por eso no no me
  • 00:05:57
    aparecen más pero eh el punto es que
  • 00:06:00
    vean aquí que se mantiene ahora sí que
  • 00:06:02
    las propiedades que tenemos antes si
  • 00:06:05
    corremos este
  • 00:06:06
    código damos OK Vamos a ver que pues el
  • 00:06:10
    carro efectivamente pues aparece que
  • 00:06:12
    está apagado luego lo encendemos y luego
  • 00:06:15
    pues tiene un método que es acabas de
  • 00:06:17
    viajar a 100 millas por horas que es el
  • 00:06:19
    método Turbo característicos del BMW
  • 00:06:22
    ahora ntese nuevamente quiero que se den
  • 00:06:25
    muy bien cuenta de esto que apagar y
  • 00:06:27
    encender no forman parte de los métodos
  • 00:06:31
    descritos dentro de del espacio
  • 00:06:34
    correspondiente al carro de tipo
  • 00:06:36
    BMW este sino que están descritos en el
  • 00:06:41
    en la clase que dice carro eh acá que
  • 00:06:45
    bueno todo ese espacio pertenece a lo
  • 00:06:47
    que es la clase carro comienza aquí en
  • 00:06:49
    este punto y aquí abajo pues tenemos
  • 00:06:52
    encender y Apagar pues pertenecientes
  • 00:06:54
    obviamente a a esta clase pero
  • 00:06:57
    efectivamente como carro como carro BMW
  • 00:07:01
    este desciende es una clase hija de de
  • 00:07:06
    esta clase carro pues hereda todas estas
  • 00:07:10
    Pues todos estos métodos estas
  • 00:07:12
    propiedades que habíamos descrito
  • 00:07:14
    anteriormente incluso s podemos escribir
  • 00:07:16
    una nueva clase vamos a decir
  • 00:07:19
    Class
  • 00:07:22
    carro Toyota
  • 00:07:25
    extend
  • 00:07:27
    carro y bueno pues este podemos por
  • 00:07:30
    ahora simplemente dejarlo vacío y decir
  • 00:07:34
    que por ejemplo dis
  • 00:07:37
    modelo es igual a
  • 00:07:40
    Toyota podemos ponerlo así para que el
  • 00:07:43
    modelo automáticamente sea de tipo
  • 00:07:47
    Toyota y
  • 00:07:51
    podemos vamos a colocar mejor modelo
  • 00:07:53
    nada
  • 00:07:55
    más bien vamos a regresar acá arriba
  • 00:07:57
    para verificar cuáles son que tenemos
  • 00:08:00
    Okay Stream
  • 00:08:04
    modelo bien Esto vamos a colocarlo
  • 00:08:07
    dentro de un constructor
  • 00:08:09
    public carro
  • 00:08:19
    Toyota Okay muy bien Ahora vamos a decir
  • 00:08:22
    que cuando se haga un Toyota el modelo
  • 00:08:23
    efectivamente va a ser Toyota y vamos a
  • 00:08:26
    crear otro método
  • 00:08:29
    que simplemente nos retorne public
  • 00:08:34
    String
  • 00:08:40
    modelo para que nos devuelva Cuál es el
  • 00:08:43
    modelo Ahora sí del carro este ntes que
  • 00:08:46
    este método lo estoy colocando solamente
  • 00:08:49
    en carro Toyota de manera que en el
  • 00:08:52
    carro de tipo BMW no nos debe de
  • 00:08:55
    aparecer colocamos el c y lo buscamos
  • 00:08:59
    pues no nos va a aparecer por ningún
  • 00:09:01
    lado pero si nosotros efectivamente
  • 00:09:04
    cambiamos el tipo de objeto y creamos un
  • 00:09:06
    carro
  • 00:09:09
    Toyota Pues nótese que el turbo ya no
  • 00:09:12
    funciona porque es únicamente hace parte
  • 00:09:13
    del
  • 00:09:14
    BMW Así que vamos a eliminarlo y vamos a
  • 00:09:18
    colocar Aquí Cuál
  • 00:09:20
    es Aquí está el
  • 00:09:24
    modelo para poderlo imprimir en en la
  • 00:09:28
    pantalla si
  • 00:09:34
    printline colocamos dentro del del print
  • 00:09:37
    Line ejecutamos el
  • 00:09:40
    código y pues vemos que el carro es
  • 00:09:43
    Toyota y mantiene aú así pues las
  • 00:09:45
    propiedades que vienen del tipo carro
  • 00:09:48
    pero como pues este carro ya no ya no
  • 00:09:50
    hace parte de lo que es el BMW sino que
  • 00:09:52
    está separado pues obviamente no va eh a
  • 00:09:56
    obtener el el método Turbo que
  • 00:09:58
    pertenecía a la otro la clase Incluso si
  • 00:10:02
    si regresáramos
  • 00:10:03
    a lo que era el el
  • 00:10:08
    BMW No
  • 00:10:11
    encontraremos pues como ya les había
  • 00:10:13
    comentado ese ese método que
  • 00:10:16
    decía modelo no O sea no podemos obtener
  • 00:10:19
    directamente el modelo porque no está
  • 00:10:20
    declarado si quisiéramos hacer eso
  • 00:10:22
    tendríamos este método que está aquí
  • 00:10:25
    moverlo a la clase carro para que herede
  • 00:10:27
    a las otras clases ahora vamos a hacerlo
  • 00:10:30
    vamos simplemente a copiar borramos y lo
  • 00:10:33
    declaramos dentro del espacio de carro
  • 00:10:36
    general que es el padre de estas dos
  • 00:10:38
    clases vamos a colocarlo aquí Y
  • 00:10:42
    regresamos al Main y ahora sí vamos a
  • 00:10:44
    encontrar que pues automáticamente pues
  • 00:10:47
    ya va aparecer el método aquí lo pueden
  • 00:10:50
    ver porque ya hereda ya está siendo
  • 00:10:54
    heredado el BMW Y si cambiáramos al
  • 00:10:58
    Toyota a así aparecería porque también
  • 00:11:00
    se hereda al al objeto pues ahora sí al
  • 00:11:04
    carro de tipo Toyota solamente no
  • 00:11:07
    serviría el turbo y bien bueno Más o
  • 00:11:09
    menos Esto es lo que quiere decir la
  • 00:11:11
    herencia la herencia nos dice que las
  • 00:11:13
    clases o los objetos pueden tener hijos
  • 00:11:17
    por decirlo así más de una vez o sea
  • 00:11:19
    incluso Aunque aquí tengamos que el
  • 00:11:21
    Toyota extienda carro podemos decir este
  • 00:11:25
    vamos a crear aquí rápidamente que
  • 00:11:27
    carrito pue tender a carro
  • 00:11:33
    Toyota o sea puede haber una varias
  • 00:11:37
    generaciones por por decirlo así este de
  • 00:11:42
    de objetos podría comenzar desde carro
  • 00:11:45
    el carro Podría tener diferentes hijos
  • 00:11:47
    que serían el carro Toyota y el carro
  • 00:11:49
    BMW y el carro Toyota Podría tener
  • 00:11:52
    incluso otro hijo que sería carrito y
  • 00:11:54
    carrito heredaría obviamente todas las
  • 00:11:57
    los métodos y propiedades de de tanto
  • 00:11:59
    carro Toyota como de Eh pues el carro
  • 00:12:03
    original así que bueno pues la herencia
  • 00:12:06
    Efectivamente es un método muy muy
  • 00:12:09
    eficiente para eh reutilización de
  • 00:12:12
    código podemos crear muchos diferentes
  • 00:12:14
    tipos de objeto que sean pues eh familia
  • 00:12:18
    y recordemos que pues cada clase
  • 00:12:20
    solamente puede extender de una sola
  • 00:12:22
    clase a la vez una clase solamente puede
  • 00:12:24
    tener un padre no puede tener más eh Muy
  • 00:12:27
    bien Bueno pues creo que esto ido todo
  • 00:12:29
    por este corto tutorial Eh pues el
  • 00:12:33
    propósito era comprender Qué era la
  • 00:12:34
    herencia y pues hacerlo pues comprender
  • 00:12:37
    aún más mediante esos ejemplos Espero
  • 00:12:39
    que les haya servido de algo y nos vemos
  • 00:12:42
    pues en la próxima ocasión con un nuevo
  • 00:12:44
    tutorial de Java bien muchas gracias mi
  • 00:12:48
    nombre es Jorge y nos vemos hasta la
  • 00:12:49
    próxima un saludo
Tags
  • Java
  • Herencia
  • Programación Orientada a Objetos
  • Reutilización de Código
  • Clases
  • Objetos
  • Métodos
  • Tutorial