Menu
Coddy logo textTech

Die „ist-ein“-Beziehung

Teil des Abschnitts Objektorientierte Programmierung der JavaScript-Journey von Coddy — Lektion 25 von 56.

Die „is-a“-Beziehung ist ein einfacher Test, um festzustellen, wann Vererbung sinnvoll ist. Wenn man sagen kann „X ist ein Y“ und es sich richtig anhört, dann sollte X wahrscheinlich von Y erben.

Richtig (Vererbung verwenden):

  • "Ein Hund ist ein Tier" → class Dog extends Animal
  • "Ein Auto ist ein Fahrzeug" → class Car extends Vehicle
  • "Ein Lehrbuch ist ein Buch" → class Textbook extends Book

Falsch (Vererbung nicht verwenden):

  • "Ein Fahrer ist ein Auto" → Nein, ein Fahrer benutzt ein Auto
  • "Ein Rad ist ein Auto" → Nein, ein Rad ist Teil eines Autos
  • "Ein Student ist ein Klassenzimmer" → Nein, ein Student ist in einem Klassenzimmer

Betrachten wir zum Beispiel zwei Objekte:

// Basisklasse - was sie alle SIND
class Book {
  constructor(title, author, pages) {
    this.title = title;
    this.author = author;
    this.pages = pages;
  }
  
  read() {
    console.log(`Reading ${this.title} by ${this.author}`);
  }
}
// Ein Roman IST-EIN Buch (korrekte Vererbung)
class Novel extends Book {
  constructor(title, author, pages, genre) {
    super(title, author, pages);
    this.genre = genre;
  }
}
// Verwendung der Klassen
const fiction = new Novel("1984", "George Orwell", 328, "Dystopian");
fiction.read();    // "Reading 1984 by George Orwell" - geerbt von Book
challenge icon

Aufgabe

Dir wird eine ElectronicDevice Klasse und eine Smartphone Klasse gegeben. Ein Smartphone ist ein Typ von ElectronicDevice mit zusätzlichen Funktionen. Deine Aufgabe ist es, ein `myPhone` Objekt mit der Marke "Samsung" und dem Modell “Galaxy S23” zu erstellen.

Spickzettel

Die "ist-ein"-Beziehung ist ein Test, um festzustellen, wann Vererbung sinnvoll ist. Wenn man sagen kann "X ist ein Y" und es richtig klingt, dann sollte X von Y erben.

Korrekte Beispiele (Vererbung verwenden):

  • "Ein Hund ist ein Tier" → class Dog extends Animal
  • "Ein Auto ist ein Fahrzeug" → class Car extends Vehicle
  • "Ein Lehrbuch ist ein Buch" → class Textbook extends Book

Falsche Beispiele (keine Vererbung verwenden):

  • "Ein Fahrer ist ein Auto" → Nein, ein Fahrer benutzt ein Auto
  • "Ein Rad ist ein Auto" → Nein, ein Rad ist Teil eines Autos
  • "Ein Schüler ist ein Klassenzimmer" → Nein, ein Schüler ist in einem Klassenzimmer

Beispiel:

// Basisklasse
class Book {
  constructor(title, author, pages) {
    this.title = title;
    this.author = author;
    this.pages = pages;
  }
  
  read() {
    console.log(`Reading ${this.title} by ${this.author}`);
  }
}

// Ein Roman IST-EIN Buch (korrekte Vererbung)
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" - von Book geerbt

Probier es selbst

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


// TODO: Erstelle ein `myPhone`-Objekt mit der Marke "Samsung" und dem Modell „Galaxy S23“.


// Testcode - nicht ändern
console.log(myPhone.turnOn());  // Sollte "Samsung Galaxy S23 is now ON" ausgeben
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Objektorientierte Programmierung