Requerimientos:
- NodeJS.
- JavaScript básico.
- POO básico.
¿Qué es la Herencia?
La herencia es la capacidad que tiene una clase «hija» de "recibir" los métodos y propiedades de una clase «padre».
Ejemplo
Realizaremos una clase Humano la cual sera nuestra clase padre, y como hijo tendremos a la clase SuperHumano que heredara todas las propiedades y metodos de Humano.
👋 Para que una clase herede los atributos de otra tendremos que usar la palabra reservada extends.
Humano.js
class Humano {
nombre
edad
constructor(nombre, edad){
this.nombre = nombre
this.edad = edad
}
dormir(){
console.log(this.nombre, 'esta durmiendo...')
}
comer(){
console.log(this.nombre, 'esta comiendo...')
}
programar(){
console.log(this.nombre, 'esta programando...')
}
toString(){
console.log('Class:', this.constructor.name)
console.log('Nombre:', this.nombre)
console.log('Edad:', this.edad)
}
}
module.exports = Humano
👋 Para tener acceso a los métodos de la clase padre tendremos que usar el método reservado super, por eso encontraras que a veces se refieren a la clase padre como «SuperClass».
SuperHumano.js
const Humano = require('./Humano')
class SuperHumano extends Humano{
poder
constructor(nombre, edad, poder){
super(nombre, edad)
this.poder = poder
}
usarPoder(){
console.log(this.nombre, 'usa su poder de', this.poder)
}
toString(){
super.toString()
console.log('Poder:', this.poder);
}
}
module.exports = SuperHumano
Lo hicimos! 🚀
Como puedes ver en la clase SuperHumano No se declaran los metodos comer, programar o dormir pero podremos hacer uso de ellos gracias a que hereda de nuestra clase Humano. ¿Qué tal si lo probamos?
index.js
const Humano = require('./Humano')
const SuperHumano = require('./SuperHumano')
const humano = new Humano('Ushieru', 20)
humano.toString()
humano.comer()
humano.programar()
humano.dormir()
console.log('\n---------------------------\n')
const superHumano = new SuperHumano('Super Ushieru', 22, 'Volar')
superHumano.toString()
superHumano.comer()
superHumano.programar()
superHumano.dormir()
superHumano.usarPoder()
En hora buena! 🎉
Acabamos de crear nuestra primer herencia! Ahora te invito a poner aprueba tus habilidades y usar la herencia en tus proyectos. Cuéntame tu experiencia o deja tus preguntas en comentarios. Suerte Devs! 👩💻👨💻
Top comments (0)