多态

作者: 想飞的键盘手 | 来源:发表于2018-12-09 12:34 被阅读0次
    • 多态概述

      事物存在的多种形态

    • 多态前提

      a: 要有继承关系
      b:要有方法重写
      c:要有父类引用指向子类对象

    • 多态(动态绑定)
      成员方法调用子类
      成员变量调用父类

    成员变量 编译看左边 运行看左边
    方法(非静态) 编译看左边 运行看右边
    (编译的时候检查父类有没有改方法 运行的时候走子类的方法 )

    • 静态方法还是走父类的 相当于类名.类方法 (无法实现动态绑定)(自己是自己的 没有重写静态方法的)

    向上转型

    父类引用指向子类对象就是向上转型

    向下转型(强制转换)

    先有向上转型才有向下转型


    捕获.PNG

    多态的好处和弊端

    多态的好处

    1. 提高了代码的维护性(继承保证)
    2. 提高了代码的扩展性(多态保证)
      实例
      可以当做形式参数,可以接收任意子类对象
      弊端
      不能使用子类特有的属性和行为()

    很少在创建对象的时候直接使用父类引用指向子类对象
    要使用子类特有方法需 判断类型 向下强转

    boolean result = object instanceof class
    //判断 instanceof 前边的引用是否是后边的数据类型
    //还可以判断子父类的所属关系
    

    一般都是父类定义了该方法 子类重写了该方法 通过动态绑定直接使用子类方法

    相关文章

      网友评论

          本文标题:多态

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