Ich glaube, ihr vermischt die Begriffe. Polymorphismus ist die Fähigkeit eines Objekts, sich während der Laufzeit unterschiedlich zu verhalten. Um dies zu erreichen, benötigen Sie zwei Voraussetzungen:
- Späte Bindung
- Vererbung.
Diesbezüglich Überlastung bedeutet etwas anderes für Übergeordnetes je nach der von Ihnen verwendeten Sprache. Zum Beispiel gibt es in Java nicht Übergeordnetes pero Überlastung . Überlastet Methoden mit einer anderen Signatur als die der Basisklasse sind in der Unterklasse verfügbar. Andernfalls wären sie außer Kraft gesetzt (bitte sehen Sie, dass ich jetzt die Tatsache meine, dass es keine Möglichkeit gibt, Ihre Basisklassenmethode von außerhalb des Objekts aufzurufen).
In C++ ist dies jedoch nicht der Fall. Jede überlastet Methode, unabhängig davon, ob die Unterschrift die gleiche ist oder nicht (unterschiedlicher Betrag, unterschiedlicher Typ), ist auch außer Kraft gesetzt . Das heißt, die Methode der Basisklasse ist in der Unterklasse nicht mehr verfügbar, wenn sie von außerhalb des Unterklassenobjekts aufgerufen wird.
Die Antwort lautet also: Wenn Sie über Java sprechen, verwenden Sie Überlastung . In jeder anderen Sprache kann es anders sein, wie es in C++ geschieht