Dog other=(Dog)obj;这一行代码是什么意思?

为什么要把传进来的obj转化成Dog类型?Dog类型是什么?

一幢不高的楼
浏览 1857回答 3
3回答

JustWannaHugU

Object是任何类的父类;推一下:因为Object 的子类是Animal,Animal的子类是Dog推出Object的子类是Dog在这个视频中obj是Object类的一个实例对象你困惑的代码是重写后的equals方法这段代码要传入一个Object对象的;Dog other=(Dog)obj这段代码的作用是:在两个对象(obj和当前比较对象)是相同类型的情况下,将obj类强制转换成Dog子类型,再比较两个变量的属性值是否相等,目的是为了判断两个对象是否相同~getClass是反射知识,你以后才会学到,不过你要清楚的是,Dog other=(Dog)obj是向下转型,在保证安全的情况下(经过getclass()的判断已经能保证是同一个对象了),才可以将大类型的强制转化成小类型的对象~

JustWannaHugU

没找到你说的视频是哪个?...重写equals那一节没有obj和other啊...你也不发链接,还有这个问题:放在同一个类里面才能比较他们的属性吗?不知道你哪不懂

JustWannaHugU

这行代码的意思是把obj强制转换成Dog类型的对象这属于向下转型,应该是有他的目的,具体代码具体分析Dog类是obj所属类的一个具体子类~
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java