1.多态
1.1 多态的概述
-
什么是多态
同一个对象,在不同时刻表现出来的不同形态
-
多态的前提
要有继承或实现关系
要有方法的重写
要有父类引用指向子类对象
1.2 多态中的成员访问特点
-
成员访问特点
多态成员访问特点:
1.成员变量:编译看父类;运行看父类;
Person p1 = new Student();(看父类Person有没有成员变量)2.成员方法:编译看父类,运行看子类,动态绑定
如果子类没有重写父类的成员方法,那么在父类引用子类的情况下,对象调方法,执行的就是父类的成员方法,否则就执行子类重写父类的成员方法方法体。
3.静态方法:编译看父类,运行看父类;
Person p1 = new Student();(看父类Person有没有静态方法)多态的弊端在于:子类不能使用自己特有的属性和方法
(除非强转类型)
1.3 多态的好处和弊端
-
好处
提高程序的扩展性。定义方法时候,使用父类型作为参数,在使用的时候,使用具体的子类型参与操作
-
弊端
不能使用子类的特有成员
1.4 多态中的转型
-
向上转型
父类引用指向子类对象就是向上转型
-
向下转型
格式:子类型 对象名 = (子类型)父类引用;