您的位置:

java运算符重写问题,java中方法重写定义

本文目录一览:

JAVA中有没有像c++那样的运算符重载的功能

我觉得楼主的疑虑并不矛盾啊。或许是楼主误解了。java不允许运算符重载指的是用java来写代码的人吧。意思就是说用java不能像用c++那样给我们提供了重载运算符的方式。并不是说java里面就不存在运算符重载。 而这个字符串连接运算符 + 就是重载的。java对String类型重载了+操作符,可以直接使用+对两个字符串进行连接. 只不过这个重载方式被人已经写好了。我们直接用。至于在jvm里面怎么运行。额额,我只能淡淡的说,我也不清楚。java类

char a=37;

Object s2="12323"+a;

jvm编译后的class:

Object s2 = (new StringBuilder("12323")).append(a).toString();

个人觉的java根本就不支持操作符重载,只是在编译时做了处理。

额额。。。或许也有道理。把这种所谓的运算符重载理解成一种方法的重写,只是在方法体里面对参数做的处理。 我c++学的不是很好,所以我也不知道c++上所谓的运算符重载我们不是一样写一个重载函数,然后在函数体里面做对应的操作,然后通常将操作后的实例返回回去。我觉得一定程度上来说是差不多的。

JAVA怎样重载操作符?

你说的很对,Java除了String重载了+之外,不支持其他操作符的重载

我估计是你由C转来的程序员,这和C/C++是不一样的

Java的一个目的是摒弃C/C++中的操作符重载,使得语言更简单、明确,避免大量重载运算法造成的混乱。

实际上Java中你想使用运算符表达的意义都可以使用方法来做,所以运算符重载就不必要了

+,Java会自动根据它的参数判断应该使用那个含义

两个对象+,会首先调用对象的toString(),然后使用字符串的+含义

学习Java,最好不要带有C/C++的思路,也不要刚开始就比较不同

java中的运算符重载

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

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

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

java.lang.String 如何实现的运算符重载?以加号为例说明。

JAVA本来就是不支持运算符重载的。

JAVA在内存中每个不同String都是一个实例化的对象。

当 String + String的时候,在内存中会先建立一个StringBuilder对象

然后再进行append,再把相加之后的对象引用传给结果。

JAVA有运算符重载吗

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

java中重载与重写的区别

java中有两个东西,一个是 方法重载 一个是 成员覆写 ,

方法重载 是指 一个类里面可以有多个方法,而且方法名称相同,但是方法的参数类型或者参数个数不同,功能也可以不同。

成员覆写 是指子类继承父类后,可以覆盖掉父类的 方法 和 属性。子类的方法和属性名称类型与父类的一样,就覆盖掉父类的属性和方法。

重载只能是方法,在同一个类中。

覆写是子类与父类之间,属性与方法都可以覆写。

其实重写就是重载,而令一个是覆写。