黑马程序员技术交流社区

标题: 多态的基本概念 [打印本页]

作者: SHISY    时间: 2015-6-17 23:33
标题: 多态的基本概念
1.定义:某一种事物的多种形态
例:猫类继承动物类。则猫具有两种形态,即动物与猫。
           (就是猫既是猫又是动物)
            定义变量普通赋值:猫a = new 猫();
定义变量多态赋值:动物 b = new 猫();
多态的程序体现:父类或者接口的引用指向其子类对象或者实现类对象。
2.前提:需要存在继承或者实现关系。
要有方法覆盖操作,否则没有意义。(方法重写)
父类或者接口的引用指向自己的子类对象。
3.优点:开发当中要符合开闭原则:对修改关闭,对扩展开放。
多态的存在提高了程序的扩展性(由多态保证)和后期可维护性(由继承保证)。
4.弊端:不能使用子类的特有功能。
5.特点
成员函数:(编译看左边,运行看右边)
编译时:要查看引用变量所属的类中是否有所调用的成员函数。即父类的引用类型必须有该方法
运行时: 子类重写的方法运行
成员方法:(编译看左边,运行看右边)
编译时:父类的引用类型必须有该属性
运行时:访问的为父类的属性
6.向上向下转型:
向上转型:引用变量为父类时,子类实例对象可以自动提升为父类类型。(多态本身的赋值就是向上转型)
向下转型:可以使用强制类型转换,将父类强转成子类,前期父类引用指向的对象为子类对象,即必须是多态的引用。
7.多态的表现形式
具体类多态(少见)
抽象类多态(常见)
接口多态(常见)






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2