A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

大家都知道要判断对象的对象内容是否相同用equals,判断变量所对应的内存地址是否相同用==,问如果类中没有重写equals方法,是不是默认继承Object的?Object中的equals是不是就是用“==”操作符来判断?

4 个回复

倒序浏览
继承Object没问题,但是equals应该不是用==判断的。
回复 使用道具 举报
个人理解,希望能帮到楼主。
首先判断对象的对象内容是否相同复写了Object类中的方法,举个例子:String类就是复写其中的equals方法,所以判断方法就是如果字符串全一样就相同。而如果类中没有重写equals方法,你调用的equals方法当然是Object类的了(你的类中没定义equals方法,还能调用的话,当然是继承自父类了),而Object类的equals方法其实就和==这个比较运算符一样,比较的是地址值是否相同。
注意:复写equals方法,通常还需要复写 hashCode 方法。
回复 使用道具 举报
这是Object中的equals()方法源码。
  1.     public boolean equals(Object obj) {
  2.         return (this == obj);
  3.     }
复制代码
回复 使用道具 举报
暗夜星辰 发表于 2014-7-29 16:40
个人理解,希望能帮到楼主。
首先判断对象的对象内容是否相同复写了Object类中的方法,举个例子:String类 ...

这个答案太棒了,谢谢
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马