不是说代码运行到 Dog other=(Dog)obj; 这里,表明要比较的2个对象的类型是相等的吗?类型不是指class吗?既然类型相等,为什么还要将obj强制转换成Dog类型呢?

来源:9-9 Java 中的 Object 类 Ⅱ

慕圣8425527

2020-05-29 14:54


不是说代码运行到  Dog other=(Dog)obj;  这里,表明要比较的2个对象的类型是相等的吗?类型不是指class吗?既然类型相等,为什么还要将obj强制转换成Dog类型呢?如果obj是object对象,那么,getCalss()!=obj.getCalss()不是返回true吗?

http://img2.mukewang.com/5eddcfaf0001953907030498.jpg

写回答 关注

2回答

  • 慕用1577524
    2020-08-13 16:38:07

    我理解的是类的对象调用getClass方法得到类对象,他这里比较的类型应该是比较两个对象的属性是否相同,比如都有age属性

  • weixin_慕容9292512
    2020-06-05 16:21:33

    other的类型是Dog,obj的类型是Object,他们并不相等,所以要将obj转换成Dog类型要进行强制转换

Java入门第二季 升级版

课程升级!以终为始告别枯燥,在开发和重构中体会Java面向对象编程的奥妙

530559 学习 · 6091 问题

查看课程

相似问题