Was hebt Methode auf?

Das Methodenaufheben wird in der objektorientierten Programmierung innerhalb einer Erbschafthierarchie verwendet, und es tritt auf, wenn eine Methode, die in superclass definiert wird, in einer Unterklasse neu definiert wird. Normalerweise tut die Unterklassemethode etwas, das als die superclass Methode unterschiedlich ist oder erweitert auf eine Fähigkeit der superclass, aber dieser muss nicht der Fall sein. Das Methodenaufheben tritt, wann immer eine superclass Methode in einer Unterklasse neu definiert wird, unabhängig davon den Inhalt der neu definierten Methode auf. Die neu definierten Methodenunterzeichnungen müssen die selben genau sein.

Z.B. konnte eine Kategorie A eine Methode enthalten, die „doSomething,“ genannt wurde und diese Methode nimmt keine Eingangsparameter. Zusätzlich konnten Kategorien B und C Unterklassen Kategorie A. der Kategorie sein, die B eine Methode enthalten konnte, die „doSomething genannt wurde,“, das keine Eingangsparameter nimmt, und Kategorie C eine Methode „das doSomething“ enthalten konnte dieses, nimmt eine Zahl als Eingangsparameter. In diesem Beispiel nur Kategorie, die B die aufhebende Methode, weil seine „doSomething“ Methode die gleiche Methodenunterzeichnung wie seine superclass hat, klassifizieren A. zeigen würde. Die „doSomething“ Methode in Kategorie C zeigt einerseits die überbelastende Methode, weil sie eine vollständig neue Methode verursacht.

Virtuelle Erbschaft in C++ ist ein anderes Beispiel des Methodenaufhebens. Virtuelle Methoden in den superclasses konnten oder konnten nicht eingeführt werden, aber jede mögliche Unterklassedefinition von ihnen ist ein Fall des Methodenaufhebens. Wenn eine Methode in einer Unterklasse aufgehoben wird, wird die Methode der superclass nicht benannt, es sei denn sie ausdrücklich hervorgerufen wird. Diese spezifische Weise des Benennens einer aufgehobenen Methode wird häufig gesagt, die superclass Implementierung „zu verstecken“.

Obgleich das Methodenaufheben sehr flexibel ist, können nicht alle Methoden aufgehoben werden, und es gibt Zeiten, als diese Starrheit vorzuziehend sein konnte. in Java und in C++ können spezifische Schlüsselwörter in den Methodenunterzeichnungen angewendet werden, um eine Methode an in einer Unterklasse aufgehoben werden zu verhindern. Um dies zu tun, verwendet Java-Gebrauch das „abschließendes“ Schlüsselwort und C++ „const“ Schlüsselwort. Das Methodenaufheben zu verhindern kann vorteilhaft sein, wenn eine bestimmte Funktion immer während eines Erbschaftbaums unverändert ist.

Im Allgemeinen sollten einfache Methoden, die kleine Stücke Daten erhalten, nicht aufgehoben werden müssen. Fälle, die neigen, die meisten von dem Aufheben zu profitieren, sind, wenn eine Unterklasse darauf abzielt, Funktionalität einer superclass Methode hinzuzufügen, ohne eine völlig neue Methode zu verursachen, umso zu tun. Ungewöhnliche Fälle, in denen eine Methode für eine spezifische Art Gegenstand vollständig nochmals gemacht werden muss, konnten von dieser Technik auch profitieren. Wann immer eine Methode aufgehoben wird, ist es wichtig für den Programmierer, ausreichend zu kommentieren die superclass und Unterklassemethoden. Ideal sollten diese Anmerkungen erklären, was jede Variante der Methode tut, sowie wie und warum sie sich unterscheiden.