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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 赵科铭 于 2014-3-20 00:37 编辑

String类中Equals方法和Object类中的Equals方法有什么不同?

6 个回复

倒序浏览
string的Equals就是从Object那继承下来的,而Object的Equals是虚方法,在各个派生类中都进行了重写。
因为是虚方法,所以你像下面那样用Object来调用Equals的话。调用的还是string的Equals方法。
string str = "abcde";
object str1 = str;
str1.Equals("abcde");     //还是string的Equals方法

评分

参与人数 1技术分 +1 收起 理由
czwanglei + 1 回答问题,很及时,加油。

查看全部评分

回复 使用道具 举报
亲 这个道理很简单  就像你和你父亲的脸有什么不同一样  对吧
回复 使用道具 举报
这位楼主不知道你问的是C#的呢还是Java的,在C#中很少再用到equals了几乎都是用==号进行比较的。Java中中所有的类都继承与object类而object类中的equals是比较两个对象的,string继承与object类同样也继承了equals方法并且重写了它。string的equals主要是比较两个字符串是否内容相同。
回复 使用道具 举报
LZ,你是要问C#还是JAVA?貌似C#中不用equals,都是用“==”吧!在JAVA中Object类是所有Java类的父类,所有的Java类都要继承Object类,所以通常我们写程序的时候不显式声明继承Object类,而是默认继承Object类。String类继承Object类后,也继承了equals方法,但String类对equals方法进行了重写,改变了equals方法的比较形式。其实很多其他类继承Object类后也对equals方法进行了重写。
回复 使用道具 举报
object类是所有类的基类,string类是从object继承来的,是它的子类,string的equals方法重写了基类的方法
回复 使用道具 举报
mdb 中级黑马 2014-3-16 13:47:56
7#
string是重写了Object的equals方法
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马