0Pricing
Python Academy · Lektion

Einfache Vererbung

Erstellen Sie Kindklassen, die Attribute und Methoden von einer Elternklasse erben.

Einfache Vererbung ist eine kostenlose Python Academy-Lektion auf CoddyKit. Dies ist Lektion 1 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Python Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Python Academy-Kurs umfasst insgesamt 4 Lektionen.

Einführung

Vererbung ermöglicht es einer Unterklasse, das Verhalten einer Oberklasse wiederzuverwenden und zu erweitern, ohne Code zu duplizieren.

Eine Unterklasse definieren

class Dog(Animal): erbt alles von Animal. Die Unterklasse kann neue Methoden hinzufügen oder vorhandene überschreiben.
class Animal:
    def __init__(self, name): self.name = name
    def speak(self): return '...'
class Dog(Animal):
    def speak(self): return 'Woof'
d = Dog('Rex')
print(d.name, d.speak())

super().__init__ aufrufen

super().__init__(args) ruft das __init__ der Oberklasse auf. Rufen Sie es in der Unterklasse immer auf, wenn die Oberklasse eine Initialisierungslogik besitzt.
class Animal:
    def __init__(self, name): self.name = name
class Dog(Animal):
    def __init__(self, name, breed):
        super().__init__(name)
        self.breed = breed
d = Dog('Rex', 'Labrador')
print(d.name, d.breed)

Methoden erben

Die Unterklasse erbt alle Methoden der Oberklasse. Wenn Sie diese nicht überschreiben, funktionieren sie unverändert.
class Vehicle:
    def start(self): return 'starting'
class Car(Vehicle):
    pass
print(Car().start())

Methoden überschreiben

Definieren Sie in der Unterklasse denselben Methodennamen, um die Version der Oberklasse zu ersetzen. Die Version der Unterklasse wird aufgerufen.
class Shape:
    def area(self): return 0
class Square(Shape):
    def __init__(self, s): self.s = s
    def area(self): return self.s**2
print(Square(4).area())

Verhalten der Oberklasse erweitern

Rufen Sie innerhalb der überschreibenden Methode super().method() auf, um zuerst die Version der Oberklasse auszuführen und anschließend weiteres Verhalten hinzuzufügen.
class Animal:
    def describe(self): return 'I am an animal'
class Dog(Animal):
    def describe(self): return super().describe() + ' and a dog'
print(Dog().describe())

isinstance() und issubclass()

isinstance(obj, Parent) gibt auch für Instanzen von Unterklassen True zurück. issubclass(Child, Parent) überprüft die Klassenhierarchie.
class Animal: pass
class Dog(Animal): pass
d = Dog()
print(isinstance(d, Animal))
print(issubclass(Dog, Animal))

Die Unterklasse fügt neue Methoden hinzu

Die Unterklasse kann vollständig neue Methoden definieren, die die Oberklasse nicht besitzt.
class Animal:
    def __init__(self, name): self.name = name
class Dog(Animal):
    def fetch(self): return f'{self.name} fetches!'
print(Dog('Rex').fetch())

Geschützte Attribute

Die Konvention _name signalisiert, dass nicht von außerhalb der Klasse darauf zugegriffen werden soll. Unterklassen DÜRFEN sie verwenden.
class Animal:
    def __init__(self, name): self._name = name
    def name(self): return self._name
class Dog(Animal):
    def bark(self): return f'{self._name} barks'
print(Dog('Rex').bark())

Abstrakte Basisklassen

from abc import ABC, abstractmethod zwingt Unterklassen, Methoden zu implementieren.
from abc import ABC, abstractmethod
class Shape(ABC):
    @abstractmethod
    def area(self): pass
class Circle(Shape):
    def __init__(self, r): self.r = r
    def area(self):
        import math
        return math.pi * self.r**2
print(Circle(3).area())

__bases__ und __mro__

Dog.__bases__ zeigt die direkten Oberklassen. Dog.__mro__ zeigt die vollständige Methodenauflösungsreihenfolge.
class A: pass
class B(A): pass
class C(B): pass
print(C.__mro__)

Kurzer Test

Was bewirkt super().__init__() in einer Unterklasse?

Zusammenfassung

Vererbung: class Child(Parent). super() greift auf die Oberklasse zu. Überschreiben Sie Methoden, um das Verhalten zu ändern. isinstance() überprüft die Hierarchie. ABC erzwingt abstrakte Verträge.

Weiter

Hervorragender Fortschritt! Fahren Sie fort, um das nächste Konzept zu beherrschen.

Häufig gestellte Fragen

Ist die Lektion „Einfache Vererbung“ kostenlos?

Ja — der vollständige Text von „Einfache Vererbung“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Python Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Python Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Einfache Vererbung“?

Erstellen Sie Kindklassen, die Attribute und Methoden von einer Elternklasse erben. Du übst Python Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Python Academy zu starten?

Keine Vorkenntnisse erforderlich. Python Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 1 von 4.

Wie lange dauert die Lektion „Einfache Vererbung“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Python Academy-Lektion Code schreiben und ausführen?

Ja. Jede Python Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Einfache Vererbung
  2. Methodenüberschreibung und super()
  3. Mehrfachvererbung und MRO
  4. Polymorphie und Duck-Typing
← Zurück zu Python Academy