Menu
Coddy logo textTech

La relazione «è un»

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

La relazione "è un" è un semplice test per determinare quando l'ereditarietà ha senso. Se puoi dire "X è un Y" e suona corretto, allora probabilmente X dovrebbe ereditare da Y.

Corretto (usa l'ereditarietà):

  • "Un cane è un animale" → class Dog extends Animal
  • "Un'auto è un veicolo" → class Car extends Vehicle
  • "Un libro di testo è un libro" → class Textbook extends Book

Errato (non usare l’ereditarietà):

  • "Un conducente è un’auto" → No, un conducente usa un’auto
  • "Una ruota è un automobile" → No, una ruota è parte di un'automobile
  • "Uno studente è un aula" → No, uno studente si trova in un’aula

Ad esempio, consideriamo due oggetti:

// Classe base - ciò che sono tutti
class Book {
  constructor(title, author, pages) {
    this.title = title;
    this.author = author;
    this.pages = pages;
  }
  
  read() {
    console.log(`Reading ${this.title} by ${this.author}`);
  }
}
// Un Novel è un Book (ereditarietà corretta)
class Novel extends Book {
  constructor(title, author, pages, genre) {
    super(title, author, pages);
    this.genre = genre;
  }
}
// Utilizzo delle classi
const fiction = new Novel("1984", "George Orwell", 328, "Dystopian");
fiction.read();    // "Reading 1984 by George Orwell" - ereditato da Book
challenge icon

Sfida

Ti viene data una classe ElectronicDevice e una classe Smartphone. Uno Smartphone è un tipo di ElectronicDevice con funzionalità aggiuntive. Il tuo compito è creare un oggetto `myPhone` con brand "Samsung" e modello “Galaxy S23”.

Provalo tu

import { ElectronicDevice } from './electronicDevice.js';
import { Smartphone } from './smartphone.js';


// TODO: Crea un oggetto `myPhone` con marca "Samsung" e modello “Galaxy S23”.


// Codice di test - non modificare
console.log(myPhone.turnOn());  // Dovrebbe produrre "Samsung Galaxy S23 is now ON"
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