黑马程序员技术交流社区
标题:
关于判断两个字符串内容是否相同的方法产生的疑问
[打印本页]
作者:
曹操
时间:
2012-6-2 23:40
标题:
关于判断两个字符串内容是否相同的方法产生的疑问
为什么老师是这样写的boolean equals(Object obj);而按我的理解是boolean equals(string str);?
作者:
黑马张扬
时间:
2012-6-2 23:51
应为他是String类覆盖的Object的 equals()方法 如果像你那样写就是一个新方法 而不是覆盖了
作者:
袁培育
时间:
2012-6-2 23:54
你可以查看一下jdk的帮助文档,既然是比较两个字符串,那两个对象都是String类型,调用的也是String类型的equals方法,String类型的equals方法要传入的参数类型就是Object,这个equals方法是从Object类那里继承过来的,只不过String对其进行了复写,子类复写父类方法时方法名及参数类型不能有任何改动。其实String类也可以重新定义一个自己的equals方法传入一个String类型的参数,但这样没多大意义,而且在向HashMap集合里存入String类型数据时调用的是从Object继承的equals方法。
作者:
李春阳
时间:
2012-6-3 16:55
首先恭喜楼上哈~
API帮助文档里有哈~首先,equals()方法子Object类中有。
大家都知道Object是所有类的父类,因而也就是说所有的类都可以用啦~(当然也包括String类了)
而String类又按自己需要对equal()进行了重写~
boolean equals(Object obj)这里传入的是父类Object
我们发现满足条件啦~存在继承;父类指向子类对象;子类重写父类方法。
于是乎,多态出现啦~这里写入Object更加的具有概用性~
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2