美文网首页
向上转型和向下转型

向上转型和向下转型

作者: xiaoliman | 来源:发表于2017-08-05 17:08 被阅读0次

    1. 向上转型:父类的对象名  真正指向了 子类的实体      叫做 向上转型。所以向上转型必须在继承关系中才成立。

    比如 父类是Animal  子类 Dog

    Animal animal = new Dog();

    父类中有eat方法 子类也有 的话,此时animal.eat()调用的是子类Dog类中的。

                               如果子类没有的话,调用的就是Animal父类的eat方法

    但是 animal对象不能调用子类特有的方法

    2.向下转型:为了解决父类对象名不能调用子类特有的方法,则需要向下转型。

    即Dog dog1 = (Dog) animal;


    在此过程中,也许会出现ClassCastExecption  类型转换异常,这通常发生在 向下转型时 ,转成的类 并不是对象的真正的实体的类型,则需要判断一下,用instanceof :

    dog1 instanceof Dog


    向上转型: 减少冗余代码, 提高代码的复用性

    向下转型: 因为 父类的对象不能调用子类特有的方法,向下转型成为子类就可以调用子类的特有的方法

    注意:

    *  必须是继承关系中才能够向上转型

    *  向下转型的前提条件: 现象上转型  再向下转型

    相关文章

      网友评论

          本文标题:向上转型和向下转型

          本文链接:https://www.haomeiwen.com/subject/qptwlxtx.html