equals(Object obj)

equals(Object obj)

Animal one=new Animal("花花",2);
        Animal two=new Animal("花花",2);
        //equals
        boolean flag=one.equals(two);

Object类的方法euqals后面括号里的参数可是Object类的对象:Object obj,但是在课程里,给括号里传的是Animal类的对象two,two不是Object类的对象,程序也没有报错,老师,这是怎么回事?

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学你好,Object作为所有类的父类,可以传入java中任何类型的对象,这里Animal也是Object的子类,所以这里不会报错。这里Object类与Animal的关系就像人和男人的关系,人是所有人类的总称,男人是将人的类型抽象出来的子类。例如:equals方法中参数限制要求为人的类型,那么男人是人的子类当然可以作为参数传入进去。

如果我的回答解决了你的问题,请采纳。祝:学习愉快~


  • 鱼儿0001 提问者 #1
    感觉这里不好理解,既然equals方法参数得传Object类的对象,String类的对象two怎么能传进去?String类与Object类的关系是父子类,但是String类的对象怎么能成为Object类的对象?还有one.equals(two);,这个one是不是也得理解成Object类的对象?
    2019-05-02 11:08:58
  • 好帮手慕珊 回复 提问者 鱼儿0001 #2
    你好!one不理解成Object的对象。只是当父类作为方法的参数时,在方法调用时,允许传入子类的对象。我发现同学的几个问答中都涉及到了这一个问题,建议在我给你贴代码的问答中进行回复,或者新开一个问答。祝学习愉快!
    2019-05-04 10:41:27
  • 鱼儿0001 提问者 回复 好帮手慕珊 #3
    我在这里被卡了很久,这是继承里对我来说最大的一个难点,如果攻克了,继承的学习问题就不大了。老师,关于这个问题,在你贴代码的问答里有回复。
    2019-05-05 11:23:39
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师