Sobes.tech
Junior — Middle

Kannst du ein Beispiel dafür geben, wie das Liskovsche Substitutionsprinzip in der Programmierung angewendet wird?

sobes.tech KI

Antwort von AI

Das Liskov-Substitutionsprinzip (Liskov Substitution Principle, LSP) besagt, dass Objekte einer Unterklasse ohne Verletzung der Korrektheit des Programms durch Objekte der Basisklasse ersetzt werden können.

Beispiel in JavaScript (Node.js):

class Bird {
  fly() {
    console.log('Vogel fliegt');
  }
}

class Sparrow extends Bird {
  fly() {
    console.log('Spatz fliegt');
  }
}

class Ostrich extends Bird {
  fly() {
    throw new Error('Strauss kann nicht fliegen');
  }
}

function makeBirdFly(bird) {
  bird.fly();
}

const sparrow = new Sparrow();
makeBirdFly(sparrow); // Spatz fliegt

const ostrich = new Ostrich();
makeBirdFly(ostrich); // Fehler — Verletzung des LSP

Hier verletzt die Klasse Ostrich das Liskov-Substitutionsprinzip, da die Unterklasse das Verhalten der Basisklasse (die Methode fly) nicht unterstützt. Um das LSP einzuhalten, ist es besser, Klassen in fliegende und nicht-fliegende Vögel zu unterteilen, z.B. durch Schnittstellen oder separate Basisklassen.