Gemeinsame Eigenschaften erkennen
Warum Vererbung?
Hund und Katze sind beides Tiere:
- Name, Hunger
- fuettern
Aber:
- Hund bellt
- Katze miaut
Statt alles doppelt: Basisklasse Tier, Unterklassen Hund / Katze.
Erste Vererbung
class Tier:
def __init__(self, name):
self.name = name
def fuettern(self):
print(f"{self.name} frisst.")
class Hund(Tier):
def bellen(self):
print(f"{self.name}: Wuff!")
bello = Hund("Bello")
bello.fuettern() # geerbt
bello.bellen() # extra
class Hund(Tier) bedeutet: Hund erbt von Tier.
Rate mal!
Kann bello.fuettern() ohne Definition in Hund funktionieren?
Auflösung
Ja – geerbt von Tier.
Probiere es selbst
Experiment 1
Basisklasse Fahrzeug, Unterklasse Auto.
Experiment 2
Zwei Unterklassen.
Experiment 3
Liste gemischter Objekte, gemeinsame Methode aufrufen.
Übungen
Level 1
Erkläre Basisklasse/Unterklasse.
Level 2
Tier + Katze mit miau.
Level 3
Schueler Basis, Klassensprecher mit extra Methode.
Level-2-Lösung
class Tier:
def __init__(self, name):
self.name = name
class Katze(Tier):
def miau(self):
print(f"{self.name}: Miau!")
Katze("Mira").miau()
Mini-Quiz
Idee sitzt! Als Nächstes: geerbte Methoden benutzen.