DEV Community

Cover image for POO: Herencia
Ushieru Kokoran
Ushieru Kokoran

Posted on

POO: Herencia

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
Enter fullscreen mode Exit fullscreen mode

👋 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
Enter fullscreen mode Exit fullscreen mode

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()
Enter fullscreen mode Exit fullscreen mode

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)