黑马程序员技术交流社区

标题: 一道面试题,比较疑惑,求大神解答 [打印本页]

作者: mayor125    时间: 2015-4-24 11:39
标题: 一道面试题,比较疑惑,求大神解答
本帖最后由 mayor125 于 2015-4-25 09:49 编辑

直接上代码:
  1. class Test
  2. {
  3.         protected boolean equals()
  4.         {
  5.                 return super.equals();
  6.         }
  7. }
复制代码


作者: mayor125    时间: 2015-4-24 11:43
编译是错误的,请各位帅哥美女帮忙解答一下为什么编译会出错,谢谢了。
作者: mrleeapple    时间: 2015-4-24 11:49
本帖最后由 mrleeapple 于 2015-4-24 11:50 编辑

super.equals();表示使用父类的equals()方法,而“class Test{ ”这里并没有给Test类指定父类,所以报错了。
作者: lqg5522    时间: 2015-4-24 11:54
父类默认不是Object吗,应该是没有传入对象吧,这个方法默认是判断两个对象的地址值是否相同,也就是说equals()的用法不对吧
作者: mayor125    时间: 2015-4-24 13:36
lqg5522 发表于 2015-4-24 11:54
父类默认不是Object吗,应该是没有传入对象吧,这个方法默认是判断两个对象的地址值是否相同,也就是说equa ...

是的,后来翻了翻API文档,Object类中没有equals()这个方法,Object里面的那个equals方法是要传参数的,super.equals();这样调用肯定是会报错的,因为父类中没有该空参数的方法。

谢谢你的回答。
作者: 优质码农    时间: 2015-4-24 13:56
没继承怎么来的super
作者: 静心明德    时间: 2015-4-24 14:12
super.equals();调用的是所有类的基类的equals()方法,而这个方法是有参数的,不是空参的。所以会报错。
作者: smartisan    时间: 2015-4-24 14:43
学习了~~~




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2