Geerbte Methoden benutzen
Beispiel
class Tier:
def __init__(self, name, hunger=5):
self.name = name
self.hunger = hunger
def status(self):
print(f"{self.name}: Hunger {self.hunger}")
class Hund(Tier):
def bellen(self):
print("Wuff!")
h = Hund("Bello")
h.status() # geerbt
h.bellen()
print(h.name) # geerbtes Attribut
Gemeinsames Interface
tiere = [Hund("Bello"), Hund("Luna")]
for t in tiere:
t.status()
Rate mal!
Muss Hund status neu definieren?
Auflösung
Nein, wenn die Basisversion reicht.
Probiere es selbst
Experiment 1
3 geerbte Aufrufe.
Experiment 2
Attribut aus Basis lesen.
Experiment 3
for über gemischte Unterklassen mit gemeinsamer Methode.
Übungen
Level 1
Erbe und rufe 2 Basismethoden auf.
Level 2
Unterklasse mit 1 Extra-Methode.
Level 3
Liste + gemeinsame status-Aufrufe.
Level-1-Lösung
class A:
def hi(self):
print("hi")
def bye(self):
print("bye")
class B(A):
pass
B().hi()
B().bye()
Mini-Quiz
Nutzen sitzt! Als Nächstes: überschreiben.