equals 方法的重写过程

equals 方法的重写过程

有一步是
if(obj.getClass()==Cat.class)
Cat cat=(Cat)obj
既然obj都判断是这个Cat类了为什么还要强制转换

正在回答

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

2回答

同学你好,equals()方法传入的参数obj是Object类型,这里使用if(obj.getClass()==Cat.class)判断了obj是Cat类对象,如果想要调用Cat类中的方法,就需要将obj强制转换为Cat类型才可以。

如果我的回答解决了你的疑惑,请采纳。祝:学习愉快!

  • 卡内基先生 提问者 #1
    还是不懂..if如果为ture不就是证明是Cat类,是Cat类为什么还要强制转换啊
    2018-12-18 18:32:15
  • 好帮手慕阿满 回复 提问者 卡内基先生 #2
    if(obj.getClass()==Cat.class)只是判断obj对象是否符合Cat类的特征,此时的obj是Object类的对象,不是Cat类对象,如果符合特征并且想要调用Cat类中的方法,就需要将obj强制转换为Cat类对象。祝:学习愉快~
    2018-12-18 18:51:06
  • 卡内基先生 提问者 回复 好帮手慕阿满 #3
    哦哦我明白了,我想问一下对象符合类的特征需要什么条件?
    2018-12-18 20:38:56
提问者 卡内基先生 2018-12-20 18:47:51

我的理解是传进来的obj既满足Obj有又满足Cat特征,但是他是 Obj类对象,如果想要调用Cat的方法,就是要转换成Obj类是吗?


  • 恩恩,可以这么理解。祝:学习愉快~
    2018-12-20 19:09:03
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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