Uziel Cocolan@ushieru

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.

1class Humano { 2 nombre 3 edad 4 5 constructor(nombre, edad){ 6 this.nombre = nombre 7 this.edad = edad 8 } 9 10 dormir(){ 11 console.log(this.nombre, 'esta durmiendo...') 12 } 13 14 comer(){ 15 console.log(this.nombre, 'esta comiendo...') 16 } 17 18 programar(){ 19 console.log(this.nombre, 'esta programando...') 20 } 21 22 toString(){ 23 console.log('Class:', this.constructor.name) 24 console.log('Nombre:', this.nombre) 25 console.log('Edad:', this.edad) 26 } 27} 28 29module.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».

1const Humano = require('./Humano') 2 3class SuperHumano extends Humano{ 4 poder 5 6 constructor(nombre, edad, poder){ 7 super(nombre, edad) 8 this.poder = poder 9 } 10 11 usarPoder(){ 12 console.log(this.nombre, 'usa su poder de', this.poder) 13 } 14 15 toString(){ 16 super.toString() 17 console.log('Poder:', this.poder); 18 } 19} 20 21module.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?

1const Humano = require('./Humano') 2const SuperHumano = require('./SuperHumano') 3 4const humano = new Humano('Ushieru', 20) 5humano.toString() 6humano.comer() 7humano.programar() 8humano.dormir() 9 10console.log('\n---------------------------\n') 11 12const superHumano = new SuperHumano('Super Ushieru', 22, 'Volar') 13superHumano.toString() 14superHumano.comer() 15superHumano.programar() 16superHumano.dormir() 17superHumano.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! 👩‍💻👨‍💻


Escribe una respuesta