Herencia
Parte de la sección Programación Orientada a Objetos del Journey de JavaScript de Coddy — lección 24 de 56.
La herencia en la POO de JavaScript es una forma de que una clase obtenga acceso a todas las propiedades y métodos de otra clase.
Veamos un ejemplo. Crea una clase padre:
class Vehicle {
constructor(brand, model) {
this.brand = brand;
this.model = model;
}
drive() {
console.log("Driving!");
}
}Ahora crea una clase hija que herede de Vehicle:
// Car hereda de Vehicle
class Car extends Vehicle {
honk() {
console.log("Beep beep!");
}
}Crea una instancia de la clase hija:
const myCar = new Car("Toyota", "Camry");Acceder a propiedades y métodos:
console.log(myCar.brand); // "Toyota" - heredado de Vehicle
console.log(myCar.model); // "Camry" - heredado de Vehicle
// Car puede acceder a los métodos de Vehicle
myCar.drive(); // "Driving!" - heredado de Vehicle
// Car también tiene sus propios métodos
myCar.honk(); // "Beep beep!" - específico de CarDesafío
Se te proporciona una clase Animal y una clase Dog que hereda de ella. Tu tarea es crear un objeto myDog con el nombre "Buddy" y la edad 3.
Hoja de referencia
La herencia permite que una clase obtenga acceso a las propiedades y métodos de otra clase utilizando la palabra clave extends.
Clase padre:
class Vehicle {
constructor(brand, model) {
this.brand = brand;
this.model = model;
}
drive() {
console.log("Driving!");
}
}Clase hija que hereda del padre:
class Car extends Vehicle {
honk() {
console.log("Beep beep!");
}
}La clase hija hereda todas las propiedades y métodos de la clase padre y también puede tener los suyos propios:
const myCar = new Car("Toyota", "Camry");
console.log(myCar.brand); // "Toyota" - heredado
myCar.drive(); // "Driving!" - heredado
myCar.honk(); // "Beep beep!" - método propioPruébalo tú mismo
import { Dog } from './animal.js';
// TODO: Crear el objeto myDog con el nombre "Buddy" y la edad 3.
// Código de prueba - no modificar
console.log(myDog.name); // Debería mostrar "Buddy"
console.log(myDog.age); // Debería mostrar 3Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Programación Orientada a Objetos
1Objetos y la palabra clave this
Repaso rápido: ObjetosAgregar métodos a los objetosEntendiendo la palabra clave thisFunciones constructorasLa palabra clave newDesafío de repaso7Herencia y la palabra clave extends
HerenciaLa relación "es-un"La palabra clave extendsEl método super()Heredar propiedades y métodosDesafío de repaso13Composición vs. Herencia
La relación "tiene-un" vs. "es-un"Los límites de la herencia profundaConstrucción de objetos2Organización del código
¿Qué son los módulos?Exportar con exportImportar con importExportaciones por defecto vs. nombradas5Encapsulamiento y Acceso
EncapsulamientoCampos de clase públicos y privadosMétodos privadosDesafío de repaso8Organización del código OOP
Organizar clases en módulos11Proyecto: Un renderizador de figuras
Configuración: Clase Figura y exportaciónHerencia de la clase Círculo14Sistema de Gestión de Biblioteca
Diseño de la BibliotecaClase Libro con Composición9Métodos y propiedades estáticos
Nivel de clase vs. Nivel de instanciaPropiedades estáticasMétodos de utilidad estáticosDesafío de repaso