JAVA有运算符重载吗

Python017

JAVA有运算符重载吗,第1张

其实是有的,就是字符串操作里的+和+=。但是不能自定义运算符重载,所以只有这个是重载的。它的代替实现实际上就是方法(函数)。比如BigDecimal类,可以用来表示很长的十进制数,这样的数相加并不用重载的+号而直接有一个叫做add(BigDecimal)的成员函数来实现。

不支持。因为Java作者最初没加,他认为不需要。后来则是因为郑智原因,就将这一缺憾当做一个好处来宣传。编程语言本身本不应限制程序的基于直觉或基于过去的知识的表达。就像Java对泛型的支持情况同样很糟糕一样,我们也只能希望有一天他们会引入这些语法属性。

每个语言有每个语言的特性,运算符重载不是java支持的特性,也没有规定必须有替代实现。

就像java至今不支持闭包一样,运算符重载也没有代替实现。

对面向对象的语言来说,运算符本身就不够“面向对象”,一切都可以用方法来实现