为什么Java不支持运算符重载?


当一个类具有两个或多个同名但参数不同的方法时,在调用时,根据传递的参数调用相应的方法(或相应的方法体将动态地与调用行绑定)。这种机制被称为**方法重载**。

运算符重载

运算符重载是重新定义运算符功能的能力。像c++这样的编程语言支持运算符重载。

你可以重新定义或重载C++中大多数可用的内置运算符。因此,程序员也可以将运算符与用户定义的类型一起使用。

重载的运算符是具有特殊名称的函数:“operator”关键字后跟被定义的运算符的符号。像任何其他函数一样,重载的运算符具有返回类型和参数列表。

Java 不支持运算符重载,原因如下:

  • 使代码复杂 - 在运算符重载的情况下,Java中的编译器和解释器(JVM)需要付出额外的努力来了解语句中使用的运算符的实际功能。
  • 编程错误 - 运算符的自定义定义会给程序员(尤其是新手开发者)带来混淆。此外,与支持运算符重载的编程语言相比,使用支持运算符重载的编程语言时,程序错误率较高。
  • 易于开发IDE之类的工具 - 去除运算符重载的概念使语言处理起来更简单,从而导致Java中出现大量的集成开发环境。
  • 方法重载 - 可以通过在Java中使用方法重载来实现运算符重载的功能,这种方式简单、无错误且清晰。

更新于:2019年7月30日

11K+ 浏览量

启动你的职业生涯

通过完成课程获得认证

开始学习
广告