Methodenüberschreibung in Python: Was ist das, wie geht das?

Veröffentlicht: 2021-09-28

Python ist eine allgemeine Allzwecksprache, die für Computerprogrammierer unbedingt erlernt werden muss. Ähnlich wie andere weit verbreitete Computersprachen wie JAVA, C ++, Golang, Ruby usw. ist Python auch eine objektorientierte Programmiersprache, bei der die Codierung von Klassen und Objekten abhängt. Das Konzept erlaubt es Entwicklern, einfache, wiederverwendbare Codes zu strukturieren, die dann einzelne Objekte bezeichnen. Es gibt mehrere nützliche Funktionen, die OOP-Sprachen bieten, von denen eine das Überschreiben von Methoden ist.

In diesem Artikel werden wir das Konzept der Vererbung verstehen, um das Überschreiben von Methoden in Python zu untersuchen. Beginnen wir damit, zu verstehen, was eine Klasse ist.

Inhaltsverzeichnis

Was ist eine Klasse?

Klasse ist eine Funktion oder Instanz im objektorientierten Programmierparadigma. Es ist eine erweiterte Programmcodierungsvorlage innerhalb eines Programms. Klassen helfen Programmierern, die Anfangsdaten jedes Objekts (Arrays, Strings, Variablen usw.) zum Zeitpunkt der Erstellung einzugeben. Sie ermöglichen es uns auch, die Eigenschaften der Klasse zu definieren und zu bestimmen, wie sie Daten verarbeiten oder Eingaben bereitstellen. Es gibt Unterklassen oder Kindklassen unter den definierten Elternklassen oder Oberklassen in einem Programm.

Was ist Erbschaft? Was sind seine Vorteile?

Vererbung in der objektorientierten Programmierung ist eine Eigenschaft, die es ermöglicht, die Merkmale einer Klasse an andere Klassen oder Unterklassen zu vererben. Dies hilft, Datenredundanz zu vermeiden, das Programm besser zu kompilieren und die Fehlermöglichkeiten einzuschränken.

Diese Fähigkeit einer Klasse, Merkmale von anderen Klassen abzuleiten oder zu erben, wird als Vererbung bezeichnet. Die Klasse, aus deren Merkmalen und Eigenschaften eine Unterklasse abgeleitet wird, wird als Elternklasse bezeichnet.

Hier sind die Vorteile der Erbschaft:

  • Durch die Vererbung können Benutzer Echtzeitbeziehungen gut darstellen.
  • Es ermöglicht die Wiederverwendung von Codes. Es ermöglicht Programmierern auch, einer Klasse mehr Eigenschaften zu verleihen.
  • Es ermöglicht den Übergang. Angenommen, die Klasse Q leitet die Merkmale von Klasse W ab, dann würden die Unterklassen von Q automatisch von Klasse W erben.

Arten der Vererbung

Es gibt drei Arten von Erbschaften, die wie folgt sind:

1. Einfache Vererbung

Bei der einfachen Vererbung kann eine abgeleitete Klasse Merkmale von einer einzelnen übergeordneten Klasse erben. Es ermöglicht die Wiederverwendung von Codes und das Hinzufügen neuer Funktionen.

2. Mehrfachvererbung

Es bezieht sich auf die Übertragung der Merkmale von mehr als einer Elternklasse auf eine Unterklasse. Dabei werden die Eigenschaften der Basisklasse automatisch in die Unterklasse vererbt.

3. Vererbung auf mehreren Ebenen

Wenn die Merkmale der Elternklasse und der Unterklasse weiter in eine andere abgeleitete Klasse vererbt werden, spricht man von Vererbung auf mehreren Ebenen.

Was ist Methodenüberschreibung in Python?

Das Überschreiben von Methoden ist ein Merkmal objektorientierter Programmiersprachen, bei dem die Unterklasse oder untergeordnete Klasse das Programm mit bestimmten Merkmalen oder einem bestimmten Implementierungsprozess von bereitgestellten Daten versehen kann, die bereits in der übergeordneten Klasse oder Oberklasse definiert sind.

Wenn die gleichen Rückgaben, Parameter oder Namen in der Unterklasse wie in der Elternklasse eingegeben werden, überschreibt die Implementierungsmethode in der Unterklasse die in der Elternklasse erwähnte Methode. Dies wird als Methodenüberschreibung bezeichnet.

Ihre Ausführung hängt von den Daten ab, die zum Aufrufen der Methode verwendet werden, und nicht von den bereits in der übergeordneten Klasse bereitgestellten Referenzdaten. Wenn ein Objekt der Elternklasse verwendet wird, um die Implementierungsmethode aufzurufen, die für ein Programm spezifisch ist, dann wird die Version der Methode, wie sie in der Elternklasse geschrieben ist, aufgerufen. Wenn andererseits ein Objekt der Unterklasse zum Aufrufen der Methode verwendet wird, erfolgt die Ausführung gemäß den in der Unterklasse erwähnten Merkmalen. Wenn Sie Anfänger sind und sich Fachwissen in Data Science aneignen möchten, sehen Sie sich unsere Data Science-Kurse an.

Funktionen zum Überschreiben von Methoden

In diesem Abschnitt werden die herausragenden Funktionen untersucht, die das Überschreiben der Methode in Python bietet:

  • Das Überschreiben von Methoden ermöglicht die Verwendung von Funktionen und Methoden in Python, die denselben Namen oder dieselbe Signatur haben.
  • Das Überladen von Methoden ist ein Beispiel für Laufzeitpolymorphismus.
  • Beim Überschreiben von Methoden ist immer die Verwendung der Vererbungsfunktion erforderlich.
  • Das Überladen von Methoden wird zwischen Elternklassen und Kindklassen ausgeführt.
  • Es wird verwendet, um das Verhalten und die Implementierung bestehender Methoden zu ändern.
  • Es werden immer mindestens zwei Klassen zum Überschreiben von Methoden benötigt.

Überschreiben von Methoden verstehen: Vererbung auf mehreren Ebenen und auf mehreren Ebenen

Multiple und Multilevel-Vererbungen sind zwei Arten von Vererbungen, die von den meisten objektorientierten Programmiersprachen angeboten werden. In diesem Abschnitt werden wir sehen, wie das Überschreiben von Methoden in verschiedenen und mehrstufigen Vererbungen verwendet wird:

1. Mehrfachvererbung

Bei dieser Art der Vererbung einer Klasse oder eines Objekts erbt eine Unterklasse Merkmale und Eigenschaften mehrerer Elternklassen oder Basen. Zum Beispiel gibt es drei verschiedene übergeordnete Klassen – class.1, class.2, class.3, und es gibt class.a, die die untergeordnete Klasse ist, die Funktionen mehrfacher Vererbung ausführt. Die class.a enthält Features, die von allen drei Basisklassen geerbt wurden.

Hier ist ein Beispielprogramm:

# Elternklasse 1 definieren

Klasse Parent1():

# Show-Methode der Eltern

def zeigen (selbst):

print("Innerhalb von Parent1")

# Übergeordnete Klasse 2 definieren

Klasse Parent2():

# Show-Methode der Eltern

def-Anzeige (selbst):

print("Innerhalb von Parent2")

# Unterklasse definieren

Klasse Kind (Elternteil1, Elternteil2):

# Kindershow-Methode

def zeigen (selbst):

print("Innerhalb des Kindes")

# Fahrercode

obj = Kind()

obj.show()

obj.display()

Ausgabe:

Inneres Kind

Innerhalb von Parent2

2. Vererbung auf mehreren Ebenen

Bei dieser Art der Vererbung einer Klasse oder eines Objekts wird eine Unterklasse direkt von der Basisklasse geerbt, die bereits Merkmale der Elternklasse trägt. Es ist im Grunde wie die Vater-Sohn- oder Großvater-Enkel-Beziehung. Die Merkmale der Unterklasse sind für ihre Elternklasse einzigartig. Beispielsweise gibt es eine Elternklasse mit dem Namen class.Q, und eine Unterklasse wird in der Erweiterung der class.Q gebildet. Hier kann die Unterklasse als Basisklasse für eine andere Unterklasse dienen.

Hier ist ein Beispielprogramm:

Klasse Parent():

def-Anzeige (selbst):

print("Innerhalb des übergeordneten Elements")

Klasse Kind (Elternteil):

# Kindershow-Methode

def zeigen (selbst):

print("Innerhalb des Kindes")

Klasse Enkel (Kind):

# Kindershow-Methode

def zeigen (selbst):

print("Im Enkelkind")

# Fahrercode

g = Enkelkind()

g.show()

g.display()

Ausgang :

Im Enkelkind

Innerhalb des Elternteils

Aufruf von Basisklassenmethoden innerhalb überschriebener Methoden

Es gibt eine Methode, bei der Methoden der übergeordneten Klasse zwischen überschriebenen Methoden aufgerufen werden können. Dies kann mithilfe der folgenden Prozesse erfolgen:

  • Verwendung des Klassennamens

Das Schreiben der Klassennamenmethode in die überschriebene Methode in der Unterklasse kann die in der übergeordneten Klasse bereitgestellte Methode aufrufen.

  • Verwenden der Funktion von super()

Die Programmiersprache Python bietet eine Funktion namens super() an, mit der speziell auf die Elternklasse verwiesen wird.

Fazit

Das Überschreiben von Methoden ist eine der wichtigsten Funktionen der Python-Sprache. Die Eigenschaft findet umfangreiche Anwendung bei der Programmierung von Data-Science-Anwendungen und ermöglicht eine kompakte und effiziente Datenanalyse. Das Überschreiben von Methoden erleichtert auch das Erstellen von Codes und das erneute Überprüfen. Es gibt einige Voraussetzungen für die Verwendung dieser Funktion: Verständnis des Grundkonzepts von Klassen und Vererbung.

Wenn Sie sich intensiver mit dem Überschreiben von Methoden in Python vertraut machen möchten, empfehlen wir Ihnen, den 18-monatigen Master of Science in Data Science zu absolvieren . upGrad bietet diesen Kurs vom IIIT Bangalore und der Liverpool John Moore's University an. Der Kurs vermittelt Ihnen Fähigkeiten wie Statistik, Predictive Analytics mit Python, maschinelles Lernen, Datenvisualisierung, Big Data Analytics und mehr. Studenten mit fundierten Kenntnissen der Konzepte von Python sind gut positioniert, um Themen wie Deep Learning, Natural Language Processing, Business Analytics und Data Engineering anzugehen.

Wenden Sie sich noch heute an uns, um Ihre Lernreise zu beginnen!

Unterscheiden Sie zwischen Überschreiben und Überladen.

Der Hauptunterschied zwischen Überschreiben und Überladen besteht darin, dass das Überschreiben zwischen denselben Methoden oder denselben Signaturen stattfindet, während das Überladen zwischen denselben Klassenmethoden auftritt.

1. Das Überladen von Methoden veranschaulicht den Polymorphismus zur Kompilierungszeit, während das Überschreiben von Methoden den Polymorphismus zur Laufzeit veranschaulicht.
2. Das Überladen von Methoden kann in Python nicht ausgeführt werden, während das Überschreiben von Methoden unter bestimmten Bedingungen möglich ist.

Was sind die Funktionen von Method Override?

Hier sind die Funktionen des Methodenüberschreibens:

1. Es veranschaulicht Laufzeitpolymorphismus.
2. Es stellt eine Verbindung zwischen der Elternklasse und der Kindklasse her.
3. Da es mindestens eine Klasse verbindet, müssen wir das Merkmal der Vererbung verwenden.
4. Das Überschreiben von Methoden hilft Ihnen, einen einzelnen Namen für mehr als eine Funktion zu verwenden.

Wir verwenden Methodenüberschreibung, um die Methode der Elternklasse in der abgeleiteten Klasse zu implementieren.

Welche Arten von Erbschaften gibt es? Ist es möglich, private Methoden in Python zu überschreiben?

In erster Linie verwendet das Überschreiben von Methoden mehrstufige und mehrfache Vererbungen.

Bei der mehrstufigen Vererbung wird die Unterklasse von einer Basisklasse geerbt, die aus Merkmalen der Elternklasse besteht. Aber im Fall der Mehrfachvererbung weist eine Unterklasse Merkmale von mehr als einer oder mehreren Elternklassen oder Basen auf.

Das Überschreiben privater Methoden kann in Java nicht passieren, aber es ist in Python möglich, indem ein Prozess verwendet wird, der als "Name Mangling" bekannt ist.