多态基本介绍
方法或者对象有着多种形态。是面向对象的第三大特征,多态是建立在封装和集成基础上的。
多态具体体现
1.方法的多态
重写与重载就体现多态
2.对象的多态(重点)
(1)一个对象的编译类型与运行类型可以不一致
(2)编译类型在定义对象时,就确定了,不能改变
(3)运行类型是可以变化的
(4)编译类型看定义时 = 号的左边,运行类型看 = 的右边
多态注意事项和细节讨论
- 多态的前提是:两个对象(类)之间存在继承关系
- 多态的向上转型
- 本质:父类的引用指向了子类的对象
- 语法:父类类型 引用名 = new 子类类型();
- 特点:编译类型看左边,运行类型看右边。
- 多态的向下转型
- 语法:子类类型 引用名 = (子类类型)父类引用;
- 只能强转父类的引用,不能强转父类的对象
- 要求父类的引用必须指向的事当前目标类型的对象
- 可以调用子类类型中所有的成员
注意:
- 属性没有重写之说,属性的值看编译类型
- instanceOf 比较操作符,用于判断对象的类型是否为XX类型或者XX类型的子类型