equals方法的重载重写问题

equals方法的重载重写问题

628f389600018f9612000540.jpg628f38a20001cb9d12000540.jpg
在上面的代码中,当在测试类里面调用equals方法时,参数two是Animal类型的,而在Animal类中的equals重写的方法参数是object类型,类型不一样也能传吗?还有就是,是不是我只有重写了父类的equals方法,才能在Animal类中再重载equals方法!

正在回答 回答被采纳积分+1

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

1回答
好帮手慕小蓝 2022-05-26 16:50:45

同学你好~

1.截图中第88行,对equals方法进行了重载,当调用时会直接调用参数为Animal的方法。

2.不需要先重写,可以直接进行重载。因为默认会继承equals方法,所以直接重载即可。

祝学习愉快~


  • 提问者 慕婉清4393100 #1

    关于第一点,如果只是重写equals方法,但没有重载equals方法。在测试类中的two是Animal类型,重写方法中的参数是object类型的,为啥没有错?是向上转型吗?第二点中,可以直接重载父类的方法,重载的类不是只能出现在同一个类里吗?如果子类里直接重载的话,虽然有继承,但是一个子类,一个父类,也可以吗?

    2022-05-26 17:20:19
  • 好帮手慕小蓝 回复 提问者 慕婉清4393100 #2

    同学你好~

    1.第一种方式中,如果没有重载,这里使用的多态应用于参数列表的形式。也就是参数类型是父类型,可以传递子类型。

    2.子类是先继承父类的方法,虽然没有显式的出现代码,但是确实是继承到了。然后再对该方法进行重载。所以看似是一个在父类一个在子类,实际上是发生在子类中的。

    祝学习愉快~


    2022-05-26 18:04:23
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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