课程
/后端开发
/Java
/Java入门第二季 升级版
这里是只有实例化的对象用equals()比较才需要重写是吗?要是平时,比方说赋值int a=0;int b=0;然后比较a是否等于b就不需要重写是为什么,难道a和b不需要分配地址吗
2016-09-13
源自:Java入门第二季 升级版 9-9
正在回答
因为a,b是基本类型,并且不是你写的那个类的成员变量,所以a,b是不能用equals比较的,如果强行用equals比较,则会编译报错。你提到重写,重写的概念是在需要在子类中重写其父类的方法,可是,基本类型有父类吗?没有,所以重写基本类型的数据的equals方法这一概念就不存在。至于分配内存这个问题,在调用它们的时候,肯定分配了内存给它们。所以,这是为何基本类型只能用==比较,而不能用equals。
a和b是int类型,字符串用equals().
因为两种都是数据类型
举报
课程升级!以终为始告别枯燥,在开发和重构中体会Java面向对象编程的奥妙
2 回答为什么会用source重写equals出现
2 回答为什么要重写equals方法?
3 回答类的比较和string的比较有什么不一样?
2 回答为什么非要重写equals()方法
2 回答重写equals使用intanceof