# Definition der Basisklasse Tier class Tier: def __init__(self, name, art): self.name = name # Attribut für den Namen des Tiers self.art = art # Attribut für die Art des Tiers def laut_gib(self): return "Dieses Tier macht einen Laut." def beschreibung(self): return f"{self.name} ist ein {self.art}." # Definition der abgeleiteten Klasse Hund class Hund(Tier): def __init__(self, name, rasse): super().__init__(name, "Hund") # Aufruf des Konstruktors der Basisklasse self.rasse = rasse # Attribut für die Rasse des Hundes def laut_gib(self): return "Wuff!" # Überschreiben der Methode für spezifischen Laut def beschreibung(self): return f"{self.name} ist ein {self.rasse} Hund." # Definition der abgeleiteten Klasse Katze class Katze(Tier): def __init__(self, name, farbe): super().__init__(name, "Katze") # Aufruf des Konstruktors der Basisklasse self.farbe = farbe # Attribut für die Farbe der Katze def laut_gib(self): return "Miau!" # Überschreiben der Methode für spezifischen Laut def beschreibung(self): return f"{self.name} ist eine {self.farbe} Katze." # Beispielverwendung if __name__ == "__main__": hund = Hund("Bello", "Labrador") katze = Katze("Miez", "schwarz") print(hund.beschreibung()) # Ausgabe: Bello ist ein Labrador Hund. print(hund.laut_gib()) # Ausgabe: Wuff! print(katze.beschreibung()) # Ausgabe: Miez ist eine schwarze Katze. print(katze.laut_gib()) # Ausgabe: Miau!