I program in Java and have been trying to understand exactly what operator overloading is. I’m still a bit puzzled.
An operator can take on different meanings depending on which class uses it? I’ve read that it is “Name Polymorphism”.
Java apparently does not support it and there seems to be a lot of controversy around this. Should I worry about this?
As a last question, in an assignment the teacher has stated that the assignment uses operator overloading, he is a C++ programmer mainly but we are allowed to write the assignment in Java. since Java does not support overloading, is there something I should be wary of?
Operator overloading basically means to use the same operator for different data types. And get different but similar behaviour because of this.
Java indeed doesn’t support this but any situation where something like this could be useful, you can easily work around it in Java.
The only overloaded operator in Java is the arithmetic
+operator. When used with numbers (int,long,doubleetc.), it adds them, just as you would expect. When used withStringobjects, it concatenates them. For example:This would print the following on the screen:
This is a String.This is the only situation in Java in which you can talk about operator overloading.
Regarding your assignment: if the requirement is to do something that involves operator overloading, you can’t do this in Java. Ask your teacher exactly what language you are allowed to use for this particular assignment. You will most likely need to do it in C++.
PS: In case of
Integer,Long,Doubleetc. objects, it would also work because of unboxing.