为什么可以从子类直接转换到父类,子类不是可以有自己的方法么?那这个方法要转换到父类不是会失败么?

来源:10-2 多态中的引用类型转换

慕粉00524729

2017-01-22 23:01

为什么可以从子类直接转换到父类,子类不是可以有自己的方法么?那这个方法要转换到父类不是会失败么?

写回答 关注

3回答

  • 原木兮
    2017-02-28 21:14:17

    |-------|
    | 父类   |  
    |       |
    ---------
    |       |
    |子类    |
    |额外    |
    |       |
    ---------
    如上图所示,
      如果父类new 一个对象,那么得到的对象占用的空间就是上图中”父类“那一块,此时如果转换成子类,那么就会用到“子类额外”那块,而这块内存没有申请,当访问的时候就会出错。
      如果是子类new 一个对象,那么得到的就是整个上图的空间,转化为父类的话,只可能会访问到上面的部分,而此块内存是申请了的,所以访问不会出错。

      子类转换为父类后,子类自己的方法在父类中无法访问,因为父类中没有定义。

  • 慕粉00524729
    2017-01-23 01:33:15

    没懂。。

  • 一步错两步错步步错
    2017-01-22 23:30:04

    Java中父类强制转换成子类的原则:父类型的引用指向的是哪个子类的实例,就能转换成哪个子类的引用

Java入门第二季 升级版

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

530560 学习 · 6091 问题

查看课程

相似问题