Skip to main content

Was ist die Verschreibung von Methoden?

Überschreiben von Methoden 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 Superklasse -Methode 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.

Zum Beispiel könnte eine Klasse A eine Methode namens Dosenstimmen enthalten, und diese Methode nimmt keine Eingabeparameter an.Darüber hinaus könnten Klassen B und C Unterklassen der Klasse A sein. Klasse B könnte eine Methode namens Dosen enthalten, die keine Eingabeparameter annimmt, und die Klasse C könnte eine Methode enthalten, die eine Zahl als Eingabeparameter nimmt.In diesem Beispiel würde nur die Klasse B die Verschiebung der Methode demonstrieren, da seine Dosenmethode die gleiche Methodensignatur hat wie die Superklasse, Klasse A, die Dosenmethode in der Klasse C hingegen zeigt Methodenüberladung, da es eine völlig neue Methode erstellt

virtuelles 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 Überschreiben von Methoden.Wenn eine Methode in einer Unterklasse überschrieben wird, wird die Methode der Superklasse nur aufgerufen, wenn sie explizit aufgerufen wird.Diese spezifische Methode zum Aufrufen einer überschriebenen Methode soll häufig die Superklassen -Implementierung verbergen.

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.Dazu verwendet Java das endgültige Schlüsselwort und C ++ verwendet das CONT -Keyword.Das Verhinderung der Verschieben von Methoden kann von Vorteil sein, wenn eine bestimmte Funktion während eines Vererbungsbaums immer unverändert sein sollte.

Im Allgemeinen sollten einfache Methoden, die kleine Daten erhalten, nicht überschrieben 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 wird, 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.