Menu
Coddy logo textTech

Ereditare proprietà e metodi

Fa parte della sezione Programmazione orientata agli oggetti del percorso JavaScript di Coddy. Lezione 28 di 56.

Quando una classe estende un'altra classe, eredita tutte le proprietà e i metodi della classe genitore. Questo significa che le classi figlie hanno automaticamente accesso a tutto ciò che è definito nella classe genitore.

Creiamo una classe genitore con proprietà e metodi:

class Animal {
  constructor(name, age) {
    this.name = name;
    this.age = age;
  }
  
  eat() {
    return `${this.name} is eating`;
  }
  
  sleep() {
    return `${this.name} is sleeping`;
  }
}

Ora creiamo una classe figlia che eredita da Animal:

class Dog extends Animal {
  constructor(name, age, breed) {
    super(name, age);
    this.breed = breed;
  }
}

Crea un'istanza della classe Dog:

const rex = new Dog("Rex", 3, "German Shepherd");

Ora, anche se non abbiamo definito eat() e sleep() nella classe Dog, possiamo comunque usare questi metodi:

console.log(rex.eat());  // Stampa: Rex sta mangiando
console.log(rex.sleep()); // Stampa: Rex sta dormendo

E possiamo accedere a tutte le proprietà ereditate:

console.log(rex.name);  // Stampa: Rex
console.log(rex.age);   // Stampa: 3
console.log(rex.breed); // Stampa: German Shepherd
challenge icon

Sfida

Crea una classe Cake che estenda Dessert ed esportala. La torta dovrebbe avere:

  • Tutte le proprietà e i metodi ereditati da Dessert
  • Una nuova proprietà flavor
  • Un nuovo metodo addCandles() che restituisce una stringa “Added candles to ${this.name}!”

Provalo tu

import { Dessert } from './desserts.js';
import { Cake } from './desserts.js';

// Codice di test - non modificare
const myCake = new Cake("Birthday Cake", 300, "Chocolate");
console.log(myCake.describe());   // Dovrebbe stampare "Birthday Cake has 300 calories"
console.log(myCake.flavor);       // Dovrebbe stampare "Chocolate"
console.log(myCake.addCandles()); // Dovrebbe stampare "Added candles to Birthday Cake!"
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Programmazione orientata agli oggetti

Esercitati da solo: Compilatore JavaScript online