Contenido del Curso
Java OOP
Java OOP
Principios de la POO: Herencia
Herencia
Hablemos sobre el principio de la POO - Herencia.
La Herencia es un mecanismo que permite la creación de clases basadas en otra clase.
- La clase que sirve como base se llama padre o superclase.
- La clase creada en base a la clase padre se llama hijo, subclase o descendiente.
Por lo tanto, la clase hijo puede heredar las características y propiedades de otra clase - la clase padre (sus métodos y variables).
Puedes heredar una clase usando la palabra clave extends
. La sintaxis para una clase hijo que hereda de una clase padre se ve así:
Child.java
Let's take a look at an example of how inheritance works in code. We have a class Bird
with certain fields and methods, and there is a class Parrot
with its own fields and methods. A parrot is a bird, so logically, the parrot should inherit from the Bird
class:
Entendamos qué está ocurriendo en estas imágenes:
- Creamos una clase
Bird
, que es la clase padre en nuestro caso. Esta clase tiene sus propios campos y métodos; - Creamos una clase
Parrot
, que utiliza la palabra claveextends
para heredar de la clase padreBird
. La claseParrot
es una clase hija y tiene sus propios campos y métodos. Además, como clase hija,Parrot
hereda todos los campos y métodos de la clase padreBird
; - Creamos un objeto de la clase
Parrot
en el métodomain
y vemos que podemos inicializar los campos de ambas clases, la padre y la hija. Primero, inicializamos los campos de la clase padreBird
, y luego inicializamos los campos de la clase hijaParrot
. A continuación, llamamos a los métodos: primero, los métodos de la clase padre y luego el método de la clase hija.
Así, hemos utilizado la herencia para heredar la clase Bird
.
¿Por qué hacemos esto?
Cuando tenemos muchas subclases de Bird
diferentes, no solo Parrot
, por ejemplo, también hay Pigeon
y Penguin
. En ese caso, tendremos muchos campos duplicados, como boolean canFly
. La primera ayuda que ofrece la herencia es evitar fragmentos de código duplicados.
Además, mejora significativamente la legibilidad. En la práctica, rara vez se encuentran directamente la clase Bird
y sus subclases, pero la herencia se utiliza comúnmente, especialmente con interfaces.
Nota
Aprenderás sobre interfaces en la siguiente sección de este curso.
Reglas de herencia
- Heredar solo una clase. Java no admite herencia múltiple. Una clase solo puede tener un padre.
Nota
¡No puedes heredar de ti mismo!
- Todo se hereda excepto las variables y métodos
private
.
Anteriormente, mencioné que una subclase tendría acceso a todas las variables y métodos de la clase padre. Sin embargo, eso no es completamente cierto.
En realidad, todos los métodos y variables marcados con el modificador private
no son accesibles para la subclase.
- Sobrescribir el método de la clase padre.
Imaginemos que heredamos una clase, pero hay ciertas partes del código heredado que no nos gustan. Supongamos que queremos que un método específico funcione de manera diferente a como lo hace en la clase padre.
Para sobrescribir un método de la clase padre, escribimos @Override
sobre él:
Parrot.java
En el código anterior, hemos sobrescrito el método de la clase padre, y ahora cuando este método se llama desde la clase hija, ¡el método sobrescrito será invocado!
- Previniendo la Herencia.
Si no quieres que nadie herede tu clase, utiliza el modificador final
antes de ella.
Por ejemplo:
Bird.java
Parrot.java
De esta forma, al utilizar la palabra clave final
, hemos prohibido la herencia de la clase Bird
.
Estas son solo las reglas fundamentales y características de la herencia. Es un tema amplio, y lo usarás con mucha frecuencia. A lo largo del curso, te familiarizarás con otros aspectos de la herencia y los utilizarás con mayor frecuencia.
¿Todo estuvo claro?
Contenido del Curso
Java OOP
Java OOP
Principios de la POO: Herencia
Herencia
Hablemos sobre el principio de la POO - Herencia.
La Herencia es un mecanismo que permite la creación de clases basadas en otra clase.
- La clase que sirve como base se llama padre o superclase.
- La clase creada en base a la clase padre se llama hijo, subclase o descendiente.
Por lo tanto, la clase hijo puede heredar las características y propiedades de otra clase - la clase padre (sus métodos y variables).
Puedes heredar una clase usando la palabra clave extends
. La sintaxis para una clase hijo que hereda de una clase padre se ve así:
Child.java
Let's take a look at an example of how inheritance works in code. We have a class Bird
with certain fields and methods, and there is a class Parrot
with its own fields and methods. A parrot is a bird, so logically, the parrot should inherit from the Bird
class:
Entendamos qué está ocurriendo en estas imágenes:
- Creamos una clase
Bird
, que es la clase padre en nuestro caso. Esta clase tiene sus propios campos y métodos; - Creamos una clase
Parrot
, que utiliza la palabra claveextends
para heredar de la clase padreBird
. La claseParrot
es una clase hija y tiene sus propios campos y métodos. Además, como clase hija,Parrot
hereda todos los campos y métodos de la clase padreBird
; - Creamos un objeto de la clase
Parrot
en el métodomain
y vemos que podemos inicializar los campos de ambas clases, la padre y la hija. Primero, inicializamos los campos de la clase padreBird
, y luego inicializamos los campos de la clase hijaParrot
. A continuación, llamamos a los métodos: primero, los métodos de la clase padre y luego el método de la clase hija.
Así, hemos utilizado la herencia para heredar la clase Bird
.
¿Por qué hacemos esto?
Cuando tenemos muchas subclases de Bird
diferentes, no solo Parrot
, por ejemplo, también hay Pigeon
y Penguin
. En ese caso, tendremos muchos campos duplicados, como boolean canFly
. La primera ayuda que ofrece la herencia es evitar fragmentos de código duplicados.
Además, mejora significativamente la legibilidad. En la práctica, rara vez se encuentran directamente la clase Bird
y sus subclases, pero la herencia se utiliza comúnmente, especialmente con interfaces.
Nota
Aprenderás sobre interfaces en la siguiente sección de este curso.
Reglas de herencia
- Heredar solo una clase. Java no admite herencia múltiple. Una clase solo puede tener un padre.
Nota
¡No puedes heredar de ti mismo!
- Todo se hereda excepto las variables y métodos
private
.
Anteriormente, mencioné que una subclase tendría acceso a todas las variables y métodos de la clase padre. Sin embargo, eso no es completamente cierto.
En realidad, todos los métodos y variables marcados con el modificador private
no son accesibles para la subclase.
- Sobrescribir el método de la clase padre.
Imaginemos que heredamos una clase, pero hay ciertas partes del código heredado que no nos gustan. Supongamos que queremos que un método específico funcione de manera diferente a como lo hace en la clase padre.
Para sobrescribir un método de la clase padre, escribimos @Override
sobre él:
Parrot.java
En el código anterior, hemos sobrescrito el método de la clase padre, y ahora cuando este método se llama desde la clase hija, ¡el método sobrescrito será invocado!
- Previniendo la Herencia.
Si no quieres que nadie herede tu clase, utiliza el modificador final
antes de ella.
Por ejemplo:
Bird.java
Parrot.java
De esta forma, al utilizar la palabra clave final
, hemos prohibido la herencia de la clase Bird
.
Estas son solo las reglas fundamentales y características de la herencia. Es un tema amplio, y lo usarás con mucha frecuencia. A lo largo del curso, te familiarizarás con otros aspectos de la herencia y los utilizarás con mayor frecuencia.
¿Todo estuvo claro?