为了账号安全,请及时绑定邮箱和手机立即绑定

关于equals方法

视频中,Dog other=(Dog)obj;当执行到这句话时,显然这两个对象的类型是相同的。那么我就可以把传进来的对象转化成Dog类型,是什么意思?前半句话不是说了两个类型是相同的么,怎么又要把传进来的对象转化成Dog类型呢?

正在回答

1 回答

并没有看到前面的代码,所以最好是贴下代码。。

然后我试着回答一下吧,不知道能不能解决你的疑问。

关于类型转换,有如下规则:

1、子类型可以转父类型

2、父类型不一定能转子类型

比如,人类就是父类型,男人是人类的子类,女人也是人类的子类,所以不管是男人还是女人,都是人类(子类型转父类型)

但是人类不一定是男人,还有可能是女人(父类型不一定能转子类型)。。

概括来说就是:男人一定是人,但人不一定是男人。

如果你能确定某个人是男人,那么就可以进行转型了。

以你的例子来说,狗是动物,但是动物不一定是狗(还有可能是猫、大象、蛇等等等等)

如果你确定这个obj确实是狗,那么你就可以用下面的代码来转型:

Dog other=(Dog)obj;

如果这个obj不是 Dog 类型的话,会报异常的。

3 回复 有任何疑惑可以回复我~
#1

qq_小菜_1 提问者

解释到位,我理解了
2015-12-13 回复 有任何疑惑可以回复我~
#2

qq_小菜_1 提问者

感觉解答
2015-12-13 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Java入门第二季 升级版
  • 参与学习       530553    人
  • 解答问题       6091    个

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

进入课程

关于equals方法

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信