Zum Hauptinhalt springen

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

Mini-QuizWas spart Vererbung oft?

Nutzen sitzt! Als Nächstes: überschreiben.