Discovery & Checkpoint
Gegeben ist folgende Klassenhierarchie:
class Tier:
def __init__(self, name):
self.name = name
def atmen(self):
print(self.name, "atmet.")
class Hund(Tier):
def bellen(self):
print(self.name, "bellt!")
waldi = Hund("Waldi")
waldi.atmen()Was geschieht beim Ausführen dieses Codes?
Parsons Puzzle
Bringe die Code-Bausteine in die korrekte Reihenfolge, um die Basisklasse Fahrzeug sowie die abgeleitete Klasse Rennwagen zu definieren und anschließend die geerbte Methode hupen() aufzurufen. Achte genau auf die korrekte Einrückung!
Tipp: Benutze die Anfasser zum Verschieben und ⇥- / ⇥+ zum Einrücken.
Scaffolding & Bugfix
Im Fuhrpark-System existiert ein Fehler in der Klassenvererbung.
Repariere den Klassenkopf von Traktor, sodass er von Fahrzeug erbt, und behebe den Aufruf der geerbten Methode info().
Tipp: Passe den Code im Editor an und klicke auf „Ausführen & Prüfen“.
class Fahrzeug:
def __init__(self, marke):
self.marke = marke
def info(self):
print("Fahrzeug-Marke:", self.marke)
class Traktor(Fahrzeug):
def pfluegen(self):
print(self.marke, "pfluegt das Feld.")
trecker = Traktor("AgroTitan")
trecker.info()
trecker.pfluegen()
Coding Challenge
Modelliere ein Fahrzeug-Stammbaum-System nach folgenden Vorgaben:
1. Erstelle eine Basisklasse Fahrzeug mit:
- Konstruktor __init__(self, marke), der das Attribut self.marke setzt.
- Methode hupe(self), die "<marke> macht: Tut tut!" auf der Konsole ausgibt.
2. Erstelle eine abgeleitete Klasse Rennwagen, die von Fahrzeug erbt und eine eigene Methode besitzt:
- turbo(self): Gibt "<marke> rast mit 340 km/h!" aus.
3. Erstelle eine Instanz mein_renner der Klasse Rennwagen mit der Marke 'TurboGT'.
4. Rufe an mein_renner zuerst die geerbte Methode hupe() und danach turbo() auf!
Tipp: Schreibe deinen Code in den Editor und klicke auf „Code testen“.
Test-Suite
class Fahrzeug:
def __init__(self, marke):
self.marke = marke
def hupe(self):
print(self.marke + " macht: Tut tut!")
class Rennwagen(Fahrzeug):
def turbo(self):
print(self.marke + " rast mit 340 km/h!")
mein_renner = Rennwagen("TurboGT")
mein_renner.hupe()
mein_renner.turbo()
Der modulare Fuhrpark-Simulator
Erweitere den Fuhrpark um weitere spezialisierte Klassen wie ElektroAuto (mit Methode laden()) oder Traktor (mit Anhänger-Kapazität 15 Tonnen).
Experimentiere mit mehreren Instanzen in einer Liste und lasse alle Fahrzeuge nacheinander ihre speziellen Aktionen ausführen!
Tipp: Passe den Code an, führe ihn aus oder lade dein fertiges Programm als Python-Datei herunter.
Lektion vollständig abgeschlossen!
Du hast alle Phasen gemeistert und kannst hier im Sandbox-Labor frei weiterprogrammieren.