黑马程序员技术交流社区
标题:
如果类中没有重写equals方法,是不是默认继承Object的?是不是就是用“==”?
[打印本页]
作者:
MGC
时间:
2014-7-29 16:09
标题:
如果类中没有重写equals方法,是不是默认继承Object的?是不是就是用“==”?
大家都知道要判断对象的对象内容是否相同用equals,判断变量所对应的内存地址是否相同用==,问如果类中没有重写equals方法,是不是默认继承Object的?Object中的equals是不是就是用“==”操作符来判断?
作者:
王乐乐
时间:
2014-7-29 16:25
继承Object没问题,但是equals应该不是用==判断的。
作者:
暗夜星辰
时间:
2014-7-29 16:40
个人理解,希望能帮到楼主。
首先判断对象的对象内容是否相同复写了Object类中的方法,举个例子:String类就是复写其中的equals方法,所以判断方法就是如果字符串全一样就相同。而如果类中没有重写equals方法,你调用的equals方法当然是Object类的了(你的类中没定义equals方法,还能调用的话,当然是继承自父类了),而Object类的equals方法其实就和==这个比较运算符一样,比较的是地址值是否相同。
注意:复写equals方法,通常还需要复写 hashCode 方法。
作者:
黎志勇
时间:
2014-7-29 16:54
这是Object中的equals()方法源码。
public boolean equals(Object obj) {
return (this == obj);
}
复制代码
作者:
MGC
时间:
2014-7-29 17:16
暗夜星辰 发表于 2014-7-29 16:40
个人理解,希望能帮到楼主。
首先判断对象的对象内容是否相同复写了Object类中的方法,举个例子:String类 ...
这个答案太棒了,谢谢
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2