Menu
Coddy logo textTech

Herança

Parte da seção Programação Orientada a Objetos do Journey de JavaScript da Coddy — lição 24 de 56.

Herança em JavaScript OOP é uma maneira de uma classe obter acesso a todas as propriedades e métodos de outra classe.

Vejamos um exemplo. Crie uma classe pai:

class Vehicle {
 constructor(brand, model) {
   this.brand = brand;
   this.model = model;
 }
 drive() {
   console.log("Driving!");
 }
}

Agora crie uma classe filha que herda de Vehicle:

// Car herda de Vehicle
class Car extends Vehicle {
 honk() {
   console.log("Beep beep!");
 }
}

Crie uma instância da classe filha:

const myCar = new Car("Toyota", "Camry");

Acesse propriedades e métodos:

console.log(myCar.brand);  // "Toyota" - herdado de Vehicle
console.log(myCar.model);  // "Camry" - herdado de Vehicle
// Car pode acessar os métodos de Vehicle
myCar.drive();  // "Driving!" - herdado de Vehicle
// Car também possui seus próprios métodos
myCar.honk();   // "Beep beep!" - específico de Car
challenge icon

Desafio

Você recebeu uma classe Animal e uma classe Dog que herda dela. Sua tarefa é criar um objeto myDog com o nome "Buddy" e idade 3.

Folha de consulta

A herança permite que uma classe obtenha acesso a propriedades e métodos de outra classe usando a palavra-chave extends.

Classe pai:

class Vehicle {
 constructor(brand, model) {
   this.brand = brand;
   this.model = model;
 }
 drive() {
   console.log("Driving!");
 }
}

Classe filha herdando do pai:

class Car extends Vehicle {
 honk() {
   console.log("Beep beep!");
 }
}

A classe filha herda todas as propriedades e métodos da classe pai e também pode ter os seus próprios:

const myCar = new Car("Toyota", "Camry");
console.log(myCar.brand);  // "Toyota" - herdado
myCar.drive();  // "Driving!" - herdado
myCar.honk();   // "Beep beep!" - método próprio

Experimente você mesmo

import { Dog } from './animal.js';

// TODO: Criar o objeto myDog com o nome "Buddy" e idade 3.


// Código de teste - não modifique
console.log(myDog.name);  // Deve exibir "Buddy"
console.log(myDog.age);  // Deve exibir 3
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Programação Orientada a Objetos