java - 什么是运算符重载,它与多态性有什么不同?

标签 java polymorphism operator-overloading

我用 Java 编程,并且一直在尝试准确理解什么是运算符重载。我还是有点不解。

运算符可以根据使用它的类而具有不同的含义?我读过它是“名称多态性”。

Java 显然不支持它,而且围绕它似乎有很多争议。我应该为此担心吗?

作为最后一个问题,老师在作业中说作业使用运算符重载,他主要是 C++ 程序员,但我们可以用 Java 编写作业。由于 Java 不支持重载,有什么我应该提防的吗?

最佳答案

运算符重载基本上意味着对不同的数据类型使用相同的运算符。并因此获得不同但相似的行为。

Java 确实不支持这个,但是在任何情况下这样的东西可能有用,您都可以在 Java 中轻松解决它。

Java 中唯一重载的运算符是算术运算符+。当与数字(intlongdouble 等)一起使用时,它会将它们相加,正如您所期望的那样。当与 String 对象一起使用时,它将它们连接起来。例如:

String a = "This is ";
String b = " a String";
String c = a + b;
System.out.print (c);

这将在屏幕上打印以下内容:This is a String

这是 Java 中唯一可以讨论运算符重载的情况。

关于你的任务:如果要求是做一些涉及运算符重载的事情,你不能在 Java 中这样做。向您的老师询问您在这项特定作业中可以使用哪种语言。您很可能需要用 C++ 来完成。

PS:对于IntegerLongDouble等对象,由于拆箱,它也可以工作。

关于java - 什么是运算符重载,它与多态性有什么不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9184059/

相关文章:

java - 如果需要处理的数据太多,如何让 ThreadPoolExecutor 命令等待?

java - 构造函数中的多态方法 (Java)

C++:分支节点和叶节点的单独类?

c++ - 正 lambda : '+[]{}' - What sorcery is this?

java - 从对 verify() 的调用中获取 InvalidUseOfMatchersException,即使所有参数的类型都是 'Matchers'

java - 如何创建一个为测试脚本传递参数的 webdriver 函数?

java - 使用 asp.net web api 的 Android 库

java - 为什么从父类(super class)调用时会调用子类的方法?

c++ - 重载索引运算符以模仿 POD 多维数组?

C++ 重载输出运算符