21.08.2025, 11:31
(Dieser Beitrag wurde zuletzt bearbeitet: 21.08.2025, 17:27 von computerdirk.)
Hallo und willkommen zurück!
Du hast bereits gelernt, wie man Baupläne für Objekte erstellt (Klassen) und wie man diese Baupläne wiederverwendet (Vererbung). Heute geht es um die Polymorphie, was "viele Gestalten" bedeutet.
Was ist Polymorphie?
Polymorphie erlaubt es, dass eine Methode in verschiedenen Klassen dasselbe tut, aber auf ihre eigene, spezifische Art.
Stell dir den Befehl "Sprich!" vor.
Der Befehl (Sprich!) ist immer derselbe, aber er hat viele verschiedene Gestalten, je nachdem, welchem Objekt du ihn gibst.
Polymorphie in Aktion
Wir nutzen die Klassen Person und Schueler aus der letzten Lektion. Wir fügen eine Methode vorstellen() hinzu, die sich in jeder Klasse anders verhält.
Beispiel:
Die Ausgabe wäre:
Du siehst, wie die gleiche Methode (vorstellen()) in beiden Klassen unterschiedliche Ausgaben erzeugt. Das ist Polymorphie!
Ein weiterer wichtiger Begriff: Kapselung (Encapsulation)
Kapselung ist die dritte Säule der OOP. Es bedeutet, dass die Daten (Attribute) eines Objekts "privat" bleiben und nur durch seine eigenen Methoden verändert werden können. So schützt du die Daten vor versehentlichen Änderungen. In Python wird dies oft durch ein führendes Unterstrichzeichen (_) im Namen des Attributs signalisiert.
Herzlichen Glückwunsch! Du hast die wichtigsten Grundprinzipien der objektorientierten Programmierung gemeistert.
In der nächsten Lektion werden wir alle Konzepte in einem kleinen, praktischen Projekt anwenden.
<< Zurück zur Kurs-Übersicht: Was ist Python und warum du es lernen solltest
Du hast bereits gelernt, wie man Baupläne für Objekte erstellt (Klassen) und wie man diese Baupläne wiederverwendet (Vererbung). Heute geht es um die Polymorphie, was "viele Gestalten" bedeutet.
Was ist Polymorphie?
Polymorphie erlaubt es, dass eine Methode in verschiedenen Klassen dasselbe tut, aber auf ihre eigene, spezifische Art.
Stell dir den Befehl "Sprich!" vor.
- Wenn du ihn einem Menschen gibst, wird er sprechen.
- Wenn du ihn einem Hund gibst, wird er bellen.
- Wenn du ihn einem Papagei gibst, wird er vielleicht nachplappern.
Der Befehl (Sprich!) ist immer derselbe, aber er hat viele verschiedene Gestalten, je nachdem, welchem Objekt du ihn gibst.
Polymorphie in Aktion
Wir nutzen die Klassen Person und Schueler aus der letzten Lektion. Wir fügen eine Methode vorstellen() hinzu, die sich in jeder Klasse anders verhält.
Beispiel:
Code:
class Person:
def __init__(self, name, alter):
self.name = name
self.alter = alter
def vorstellen(self):
print(f"Hallo, mein Name ist {self.name} und ich bin {self.alter} Jahre alt.")
class Schueler(Person):
def __init__(self, name, alter, schulklasse):
super().__init__(name, alter)
self.schulklasse = schulklasse
# Wir überschreiben die Methode vorstellen() der Elternklasse!
def vorstellen(self):
print(f"Hallo! Ich bin der Schüler {self.name} und gehe in die Klasse {self.schulklasse}.")
# Wir erstellen Objekte beider Klassen
person1 = Person("Dirk", 53)
schueler1 = Schueler("Max", 16, "10b")
# Rufe die gleiche Methode auf, die sich aber anders verhält
person1.vorstellen()
schueler1.vorstellen()
Die Ausgabe wäre:
Code:
Hallo, mein Name ist Dirk und ich bin 53 Jahre alt.
Hallo! Ich bin der Schüler Max und gehe in die Klasse 10b.
Du siehst, wie die gleiche Methode (vorstellen()) in beiden Klassen unterschiedliche Ausgaben erzeugt. Das ist Polymorphie!
Ein weiterer wichtiger Begriff: Kapselung (Encapsulation)
Kapselung ist die dritte Säule der OOP. Es bedeutet, dass die Daten (Attribute) eines Objekts "privat" bleiben und nur durch seine eigenen Methoden verändert werden können. So schützt du die Daten vor versehentlichen Änderungen. In Python wird dies oft durch ein führendes Unterstrichzeichen (_) im Namen des Attributs signalisiert.
Herzlichen Glückwunsch! Du hast die wichtigsten Grundprinzipien der objektorientierten Programmierung gemeistert.
In der nächsten Lektion werden wir alle Konzepte in einem kleinen, praktischen Projekt anwenden.
<< Zurück zur Kurs-Übersicht: Was ist Python und warum du es lernen solltest
Mit freundlichen Grüßen
Dirk Löbe aka Computerdirk
Dirk Löbe aka Computerdirk