• 多态


    1、概念-什么是多态
    对象在不同时刻表现出来的不同状态。

    2、针对引用类型的理解
    编译期间状态和运行期间状态不一样。
    比如:
              Person p = new Person();//第一行
              p = new Man();//第二行
              p = new Woman();//第三行
              p在第一行和第二行的状态是不一样的,在第一行表示人对象,在第二行表示学生对象

    3、举例
             水(水,冰,水蒸气)
             狗:狗是狗,狗是动物,狗是宠物,狗是食物//该处强调谁是谁的一种

    4、前提条件
           A:要有继承关系或实现关系
           B:要有方法重写或实现关系
           C:要有父类引用指向子类对象,或父接口引用指向子类对象

    5、多态的成员特点
         1、成员变量
              编译看左边,运行看左边。//就是因为变量不存在重写
              Fu fu  = new Zi();
              System.out.println(fu.name);//调用的是父类的name属性
         2、非静态成员方法 
              编译看左边,运行看右边。//因为方法存在重写
              Fu fu = new Zi();
              fu.show();//调用的是子类的show()
         
         3、产生以上现象的原因
              因为方法有重写,变量没有

    6、多态的弊端
         父类引用不能直接使用子类对象的特有功能。
         
         如何解决这个问题?
              答:向下转型 (就是强转)
                   格式:(子类)父类

    4、多态的好处
         增强了程序的扩展性和可维护性。

  • 相关阅读:
    迭代器
    装饰器
    函数对象和闭包
    函数的使用
    文件操作
    基本数据类型及内置方法
    MySQL数据库
    网络编程进阶(进程、线程、协程、IO模型)
    网络编程基础---网络通讯原理、ssh远程执行命令、粘包问题处理、文件传输处理
    面向对象、类、元类、封装、异常处理
  • 原文地址:https://www.cnblogs.com/argenbarbie/p/5904309.html
Copyright © 2020-2023  润新知