überall im Internet fand ich, dass Java nicht Operator unterstützt Überlastung, aber ich bin verwirrt somehow.Because wenn das so ist, dann ist, wie ist der „+“ Operator der Lage, sowohl hinzufügen Konstanten und Strings? Jede Erklärung würdeVerwirrung von Überladen von Operatoren in Java
Antwort
Eine Sprache sagte erkannt werden, Betreiber Überlastung zu unterstützen, wenn Sie Betreiber überlasten können, das heißt, sie machen etwas, das nicht in die Sprache integriert ist. Nicht wenn die Sprache den gleichen Operator für zwei verschiedene Dinge benutzt.
Sie können diese Operatoren verwenden, da es in der Sprache implementiert wurde, wie sie sich verhalten. Aber es gibt keine Unterstützung für das Überladen von Operatoren in Java.
Sie können Methoden wie add (Object o) erstellen, die im Grunde die gleiche ist wie die Operatoren, außer dass es nicht so gut aussieht.
Einige Sprachen, z. B. C#, ermöglichen eine Überlastung der Operatoren. Mit anderen Worten, Sie können definieren, was mit == oder ++ usw. gemeint ist. Dies kann in Szenarien sehr nützlich sein, in denen Sie == verwenden möchten, um die Gleichheit von Objekten zu testen, anstatt eine .equals() - Methode zu verwenden Beispiel.
Hier ist ein Tutorial für C#, die zeigt, wie Sie es mit einem Operator + zu tun:
http://www.tutorialspoint.com/csharp/csharp_operator_overloading.htm
Oder diese:
https://msdn.microsoft.com/en-us/library/aa288467(v=vs.71).aspx
Und Sie dies nicht tun können, derzeit in Java.
- 1. Überladen von Operatoren Plugin für Java
- 2. R, R6 Überladen von Operatoren
- 3. C# String Überladen von Operatoren
- 4. Operatoren überladen in C++
- 5. Überladen von C++ Operatoren int/float (..)
- 6. C++: Vererbung und Überladen von Operatoren
- 7. Java kann keine Operatoren überladen. Warum?
- 8. Überladen von Operatoren, muß eine Erklärung
- 9. Verwendung von __getitem__ beim Überladen von Operatoren mit Python
- 10. Überladen von Operatoren für Objekte in mehreren Klassen
- 11. Überladen von Operatoren in C++ als int + obj
- 12. Sonderbare Überladen von Operatoren, "Operator T &() const noexcept {return * _ptr;}"
- 13. Relationales Überladen von Operatoren für die Enum-Klasse
- 14. Warum wird beim Überladen von Operatoren ein Konstruktor zurückgegeben?
- 15. Funktion/Methode Überladen C++: Datentyp Verwirrung?
- 16. Übergeben von ExecutorService Verwirrung in Java
- 17. Verwenden von Operatoren mit Objekten in Java
- 18. Wenn ich die Operatoren + und = überladen habe, muss ich + = überladen?
- 19. Wie kann ich die Operatoren [] überladen?
- 20. Ist es möglich, Operatoren in C zu überladen?
- 21. Überladen von Operatoren: Wie Hinzufügen und Daten von zwei Klassen „Integer“ Vergleich und „Fraction“
- 22. Gibt es in C# eine Möglichkeit, das Überladen von Operatoren in abgeleiteten Klassen zu erzwingen?
- 23. Kann ich Operatoren für Aufzählungstypen in C++ überladen?
- 24. Java überladen vs überschreiben
- 25. Überladen von Eigenschaften in C#
- 26. Mehrdeutigkeit beim Überladen von Funktionen in C++ Vs Java
- 27. In Java überladen und überschrieben
- 28. Ternäre Operatoren (Java)
- 29. Überladen von Operator in C++ und Dereferenzierung
- 30. Wie implementiert man idiomatisches Überladen von Operatoren für Werte und Referenzen in Rust?
Vielen Dank @JB Nizet –