多态

作者: 杨邕 | 来源:发表于2019-03-23 12:10 被阅读0次

    1.多态的概念

    简单理解:一种事物的多种形态

                        一个人就是一个动物:

    Animal aml = new Person();//一个动物变量中,可能存放子类对象的多种可能

    理解:使用aml:编译是看的是Animal类型,运行时看的是实际存放的对象[真实类型]

    ①官方概念:编译时跟运行时类型不一致就产生了多态

    ②民间理解:父类类型的变量,存放子类类型的对象,可能存放子类类型的对象有多种可能

            多态存在的前提:必须有继承关系

    2.多态的编译时运行时过程

        ①编译时,看的是父类类型,会现在父类中,看有不有对应的方法,如果没有继续向上找{更高父类}如果找到了,编译通过,如果找不到,编译失败报错

        ②运行时:看真实类型,如果在真实类型中找到了,就运行真实类型中的函数,如果没有找到,向上找

        ③问题:编译通过了,但是运行可不可能找不到?不可能的,因为编译都已经说明了,上面一定有

    3.多态的应用示例

    多态的应用实例:

        ① 发现多态的好处,多态屏蔽了不同子类的实现差异

        ②子类的实现?子类可以覆写父类的方法的

    人喂狗:有人有狗:狗有很多种:每个狗都有吃的行为

            (1) 父类中有一个方法,子类覆写了

            (2) 父类中有一个方法,子类没有

            (3) 父类中没有,子类有一个方法

            (4) 父类子类都没有

    相关文章

      网友评论

          本文标题:多态

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