Zum Hauptinhalt springen

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

Mini-QuizWas bedeutet class Hund(Tier)?

Idee sitzt! Als Nächstes: geerbte Methoden benutzen.