为什么Java不支持运算符重载?
当一个类具有两个或多个同名但参数不同的方法时,在调用时,根据传递的参数调用相应的方法(或相应的方法体将动态地与调用行绑定)。这种机制被称为**方法重载**。
运算符重载
运算符重载是重新定义运算符功能的能力。像c++这样的编程语言支持运算符重载。
你可以重新定义或重载C++中大多数可用的内置运算符。因此,程序员也可以将运算符与用户定义的类型一起使用。
重载的运算符是具有特殊名称的函数:“operator”关键字后跟被定义的运算符的符号。像任何其他函数一样,重载的运算符具有返回类型和参数列表。
Java 不支持运算符重载,原因如下:
- 使代码复杂 - 在运算符重载的情况下,Java中的编译器和解释器(JVM)需要付出额外的努力来了解语句中使用的运算符的实际功能。
- 编程错误 - 运算符的自定义定义会给程序员(尤其是新手开发者)带来混淆。此外,与支持运算符重载的编程语言相比,使用支持运算符重载的编程语言时,程序错误率较高。
- 易于开发IDE之类的工具 - 去除运算符重载的概念使语言处理起来更简单,从而导致Java中出现大量的集成开发环境。
- 方法重载 - 可以通过在Java中使用方法重载来实现运算符重载的功能,这种方式简单、无错误且清晰。
广告