Was ist Methodenüberschreibung?

Methodenüberschreibung wird in der objektorientierten Programmierung innerhalb einer Vererbungshierarchie verwendet und tritt auf, wenn eine in einer Superklasse definierte Methode in einer Unterklasse neu definiert wird. Normalerweise macht die Unterklasse -Methode etwas anderes als die Superklassenmethode oder erweitert eine Fähigkeit der Superklasse, aber dies muss nicht der Fall sein. Das Überschreiben von Methoden erfolgt immer dann, wenn eine Superklasse -Methode in einer Unterklasse neu definiert wird, unabhängig vom Inhalt der neu definierten Methode. Die neu definierten Methodensignaturen müssen genau gleich sein. Darüber hinaus könnten Klassen B und C Unterklassen der Klasse A sein. Klasse B könnte eine Methode mit dem Namen "Dosenstart" enthalten, die keine Eingabeparameter nimmt, und die Klasse C könnte eine Methode "Dosen" enthalten, die eine Zahl als Eingabeparameter nimmt. In diesem Beispiel würde nur Klasse B die Methode überschrittenDie Signatur als Superklasse, Klasse A. Die "Doomething" -Methode in Klasse C hingegen zeigt die Überladung der Methode, da sie eine völlig neue Methode erstellt.

virtuelle Vererbung in C ++ ist ein weiteres Beispiel für die Überschreitung von Methoden. Virtuelle Methoden in Superklassen werden möglicherweise implementiert oder möglicherweise nicht, aber jede Unterklasse -Definition von ihnen ist eine Instanz der Überschreitung von Methoden. Wenn eine Methode in einer Unterklasse überschrieben wird, wird die Methode der Superklasse nur aufgerufen, es sei denn, sie wird explizit aufgerufen. Diese spezifische Methode, um eine überschriebene Methode aufzurufen

Obwohl das Überschreiben von Methoden sehr flexibel ist, können nicht alle Methoden überschrieben werden, und es gibt Zeiten, in denen diese Starrheit möglicherweise vorzuziehen ist. Sowohl in Java als auch in C ++ können bestimmte Schlüsselwörter in Methodensignaturen angewendet werden, um zu verhindern, dass eine Methode in einer Unterklasse überschrieben wird. Um dies zu tun, JavaVerwendet das Schlüsselwort "endgültig", und C ++ verwendet das Schlüsselwort "const". Das Verhinderung der Verschieben von Methoden kann vorteilhaft sein, wenn eine bestimmte Funktion während eines Vererbungsbaums immer unverändert sein sollte.

Im Allgemeinen sollten einfache Methoden, die kleine Daten erhalten, nicht außer Kraft gesetzt werden müssen. Fälle, die tendenziell am meisten von Überschreibungen profitieren, sind, wenn eine Unterklasse darauf abzielt, einer Superklasse -Methode Funktionen hinzuzufügen, ohne eine völlig neue Methode zu erstellen. Ungewöhnliche Fälle, in denen eine Methode für einen bestimmten Objekttyp vollständig erneuert werden muss, kann auch von dieser Technik profitieren. Wenn eine Methode überschrieben ist, ist es für den Programmierer wichtig, sowohl die Superklassen- als auch die Unterklasse -Methoden angemessen zu kommentieren. Im Idealfall sollten diese Kommentare klarstellen, was jede Variante der Methode tut und wie und warum sie sich unterscheiden.

ANDERE SPRACHEN

War dieser Artikel hilfreich? Danke für die Rückmeldung Danke für die Rückmeldung

Wie können wir helfen? Wie können wir helfen?