C++ has proven by example that operator overloading makes code almost impossible to maintain. In fact there very nearly wasn?t even method overloading in Java, but it was thought that this was too useful for some very basic methods like print(). Note that some of the classes like DataOutputStream have unoverloaded methods like writeInt() and writeByte().
I belive Operator Overloading exists in Java.
For ex: Operator + :
'+' has been over ridden to add when its used with number. The '+' operator is also used as Concatenating operator in case of Strings.
Plz let me know in case of any clarification required.
Operator overloading makes the code more complex and less readable. Also we could define different methods in the same class like plus(),plusplus(), minus() etc and thus bringing operator overloading in Java
Operator Overloading An operator is overloaded if it is bound to multiple definitions. When the operator is used in an expression, which definition to use is determined based on the number and type of the operands. Examples: ? in Java, + is used both for addition and string concatenation ? in almost all programming languages, the arithmetic operators (+, -, *, ...) are overloaded to work on both integer and floating point types. Note that integer addition and floating point addition are different operations in assembly language. Notes on overloading: ? many languages (C++, Ada, C#) allow the programmer to overload operators ? Java does not ? overloading can help program readability if the overloaded meaning of the operator is similar to the standard meaning ? overloading can hurt program readability if the overloaded meanings of the operator are very different from each other and/or the standard meaning ? overloading can reduce reliability by weakening the compiler's ability to detect type errors ? by definition, overloading must always be resolved statically. The compiler must be able to determine which meaning is meant by the (static) types of the operands.
java does not support method overloading But you can see a "+" operator is overloaded in java. it is used for string concatenation as well as addition. but it is a built inside java. a user or a programmer was not able to overload that operator anymore. In that sense java does not support operator overloading.
But a programmer can overload method.so method overloading is supported in java.
There were two major reasons why operator overloading wasn't allowed in Java: "cleanliness" and compiler complexity.. Given the human tendency to assign specific meanings to single symbols, it is hard to get programmers to wrap their heads around multiple meanings for operators.