Menu
Coddy logo textTech

La relation « est un »

Fait partie de la section Programmation Orientée Objet du Journey JavaScript de Coddy — leçon 25 sur 56.

La relation « est un » est un test simple pour déterminer quand l'héritage est logique. Si vous pouvez dire « X est un Y » et que cela semble correct, alors X devrait probablement hériter de Y.

Correct (Utilisez l'héritage) :

  • « Un chien est un Animal » → class Dog extends Animal
  • "Une voiture est un Véhicule" → class Car extends Vehicle
  • "Un manuel scolaire est un livre" → class Textbook extends Book

Incorrect (N'utilisez pas l'héritage) :

  • « Un Conducteur est une Voiture » → Non, un conducteur utilise une voiture
  • "Une roue est une voiture" → Non, une roue fait partie d'une voiture
  • "Un étudiant est une salle de classe" → Non, un étudiant est dans une salle de classe

Par exemple, considérons deux objets :

// Base class - what they all ARE
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 Roman EST-UN Livre (héritage correct)
class Novel extends Book {
  constructor(title, author, pages, genre) {
    super(title, author, pages);
    this.genre = genre;
  }
}
// Utilisation des classes
const fiction = new Novel("1984", "George Orwell", 328, "Dystopian");
fiction.read();    // "Reading 1984 by George Orwell" - hérité de Book
challenge icon

Défi

On vous donne une classe ElectronicDevice et une classe Smartphone. Un Smartphone est un type de ElectronicDevice avec des fonctionnalités supplémentaires. Votre tâche consiste à créer un objet `myPhone` avec la marque "Samsung" et le modèle “Galaxy S23”.

Aide-mémoire

La relation "est un" est un test pour déterminer quand l'héritage est logique. Si vous pouvez dire "X est un Y" et que cela semble correct, alors X devrait hériter de Y.

Exemples corrects (utiliser l'héritage) :

  • "Un chien est un animal" → class Dog extends Animal
  • "Une voiture est un véhicule" → class Car extends Vehicle
  • "Un manuel scolaire est un livre" → class Textbook extends Book

Exemples incorrects (ne pas utiliser l'héritage) :

  • "Un conducteur est une voiture" → Non, un conducteur utilise une voiture
  • "Une roue est une voiture" → Non, une roue fait partie d'une voiture
  • "Un étudiant est une salle de classe" → Non, un étudiant est dans une salle de classe

Exemple :

// Classe de base
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 roman EST UN livre (héritage correct)
class Novel extends Book {
  constructor(title, author, pages, genre) {
    super(title, author, pages);
    this.genre = genre;
  }
}

const fiction = new Novel("1984", "George Orwell", 328, "Dystopian");
fiction.read();    // "Reading 1984 by George Orwell" - hérité de Book

Essayez vous-même

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


// À FAIRE : Créer un objet `myPhone` avec la marque "Samsung" et le modèle “Galaxy S23”.


// Code de test - ne pas modifier
console.log(myPhone.turnOn());  // Devrait afficher "Samsung Galaxy S23 is now ON"
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Programmation Orientée Objet