2012-10-15 12 views

Antwort

52

Polymorphism kann durch Überschreiben erreicht werden. Kurz gesagt, Polymorphismus bezieht sich auf die Fähigkeit eines Objekts, abhängig von seiner eigenen Natur unterschiedliche Verhaltensweisen (unterschiedliche Implementierungen) zu bieten. Insbesondere abhängig von seiner Position in der Klassenhierarchie.

Method Overriding ist, wenn eine in einer Oberklasse oder Schnittstelle definierte Methode von einer ihrer Unterklassen neu definiert wird, wodurch das Verhalten der Oberklasse geändert/ersetzt wird. Die Entscheidung, ob eine Implementierung oder eine andere aufgerufen wird, wird dynamisch zur Laufzeit getroffen, abhängig vom Objekt, von dem die Operation aufgerufen wird. Beachten Sie, dass die Signatur der Methode beim Überschreiben unverändert bleibt.

Method Overloading ist nicht mit Polymorphie verwandt. Es bezieht sich auf die Definition verschiedener Formen einer Methode (normalerweise durch den Empfang verschiedener Parameternummern oder -typen). Es kann als statischer Polymorphismus gesehen werden. Die Entscheidung, eine Implementierung oder eine andere aufzurufen, wird zum Codierungszeitpunkt getroffen. Beachten Sie in diesem Fall, dass sich die Signatur der Methode ändern muss.

Operator overloading ein anderes Konzept ist, um Polymorphismus zusammen, die sich auf die Fähigkeit einer bestimmten sprachabhängigen Operator bezieht sich unterschiedlich auf die Art seiner Operanden verhalten Basis (zum Beispiel Verkettung mit String s und zusätzlich + könnte bedeuten, mit numerische Operanden).

Die example in Wikipedia ist recht illustrativ.

Die folgenden verwandten Fragen könnte auch nützlich sein:

+0

ist eine Überlastung in keinem Zusammenhang mit Polymorphismus? Überladen ist Kompilierzeit-Polymorphismus. Wobei Überreiten ist Laufzeit-Polymorphismus –

4

Kurz, nein, sie sind nicht das Gleiche.

Überladen bedeutet, Methoden mit demselben Namen, aber unterschiedlichen Parametern zu erstellen.

Überschreiben bedeutet, den Körper einer Oberklassenmethode in einer Unterklasse neu zu definieren, um das Verhalten einer Methode zu ändern.

Polymorphie ist ein breites Konzept, das Überschreiben und Überladen und vieles mehr in seinem Umfang umfasst. Wikipedia's description of polymorphism kann Ihnen helfen, den Polymorphismus besser zu verstehen. Vor allem die Subtyp Polymorphismus (oder Einschluss Polymorphismus) Abschnitt ist, wo Sie suchen sollten.