Was überbelastet Methode?

Die Methodenüberbelastung ist eine Eigenschaft in den meisten objektorientierten Programmiersprachen, in denen zwei oder mehr Methoden den gleichen Namen teilen, aber hat verschiedene Parameter. Spezifisch sind die Zahl, die Datenart und/oder der Auftrag den Parametern unterschiedlich. Wenn der Code kompiliert wird, wird der korrekten Methode automatisch basiert vorgewählt auf, wie sie benannt wird. Methoden sind alias Funktionen in einigen Programmiersprachen, also gekennzeichnet die Methodenüberbelastung manchmal als die Funktionsüberbelastung.

Ein einfaches Beispiel der Methodenüberbelastung würde eine Methode sein, die den Bereich eines Quadrats berechnet. Es konnte als getArea (Quadrat s) definiert werden. Diese Methode könnte überbelastet werden, um den Bereich des Kreises zusätzlich zu berechnen, indem man das Methode getArea addierte (Kreis c).

Die Primäranforderung für die Methodenüberbelastung ist, dass die Methoden den gleichen Namen teilen. Ihre Methodenunterzeichnungen - der Methodenname, die Zahl Parametern und die Parameterdatenarten - sollten einzigartig anders sein. Auf diese Art kann der Kompilator feststellen, welche durchzuführen Methode.

Erbauer, die Methoden, die instantiate Gegenstände angewendet werden, werden häufig überbelastet. Dieses wird getan, um einen Gegenstand mit non-default Werten zu initialisieren. Z.B. konnte ein Angestelltgegenstand mit zwei Feldern (Name und Geburtsdatum oder dob) die folgenden überbelasteten Erbauer haben: Angestellter (), Angestellter (Name) und Angestellter (Name, dob). Der erste Erbauer verursacht einen Angestelltgegenstand mit unbelegtem Namen und dob-Feldern. Die Sekunde stellt das Namensfeld ein, aber verlässt den dob-Feldfreien raum, und das Drittel definiert den Namen und die dob-Felder.

Die Methodenüberbelastung ist häufig erfolgt, um mehr als eine Methode als einzelne Methode logisch erscheinen zu lassen. Im getArea () Beispiel während es physikalisch zwei Methoden gibt, wird der Anrufer mit einer einzelnen, logischen getArea () Methode dargestellt. Auf diese Art kann getArea () erweitert werden, um an anderen Formen zu arbeiten - Dreiecke, Paralleltrapeze, und so weiter - beim als einzelne Methode noch logisch sich darstellen.

Methoden werden auch überbelastet, um Rückwärtskompatibilität zu konservieren. Eine Methode, die eine komplizierte Berechnung tut, könnte eine neue Anforderung gegeben werden, die gleiche Berechnung mit einer geringfügigen Änderung beliebig durchzuführen. Ein neuer Parameter wird der Methode hinzugefügt, die feststellt, wie man die Berechnung - die alte Weise oder die neue Weise durchführt.

Um zu vermeiden alle Fälle finden zu müssen in denen die Methode und den neuen Parameter zu addieren benannt wird, die Methode kann überbelastet werden. Die neue Methode hat die alte Unterzeichnung und wird durch vorhandenen Code benannt. Sie enthält keine Logik selbst und benennt einfach die geänderte Methode und überschreitet in eine Rückstellung von “old way† für den neuen Parameter. Neuer Code benennt die geänderte Methode und führt den neuen Parameter mit dem passenden Wert, der alten Weise oder der neuen Weise.

Die Methodenüberbelastung ist eine Art Polymorphie, in der die gleiche logische Methode auf mehrfache Arten in der Praxis angewendet werden kann. Die Methodenüberbelastung ist nicht die selbe wie das Methodenaufheben. Das Methodenaufheben ist, wo die Definition einer Methode in einer Elternteilkategorie durch eine Kindkategorie geändert wird. In diesem Fall haben beide Methoden die gleiche Unterschrift.