关于equals方法

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

qq_小菜_1

2015-12-12 22:50

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

写回答 关注

1回答

  • 慕男婶
    2015-12-12 23:15:29
    已采纳

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

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

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

    1、子类型可以转父类型

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

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

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

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

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

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

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

    Dog other=(Dog)obj;

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

    qq_小菜_...

    感觉解答

    2015-12-13 00:13:43

    共 2 条回复 >

Java入门第二季 升级版

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

530646 学习 · 6091 问题

查看课程

相似问题