一、多态形式

父类引用指向子类对象(两种形式)

父类名称 对象名 = new 子类名称();

接口名称 对象名 = new 实现类名称();

二、多态中访问成员变量的方式

1.直接通过对象名称访问成员变量:看等号左边是谁,优先使用谁的,没有则向上找。

2.间接通过成员方法访问成员变量:看该方法属于谁,优先使用谁的,没有则向上找。

三、多态中访问成员方法的方式

看new的是谁,就优先用谁的,没有则向上找,

总结:

成员变量:编译看左边,运行看左边

成员方法:编译看左边,运行看右边

四、使用多态的好处

//Employee为父类

Employee emp1 = new Teacher();

emp1.work();

Employee emp2 = new Assistant();

emp2.work();

无论等号右边的new换成哪个子类对象,等号左边都不用变。

五、对象的向上转型与向下转型

1.向上转型

(1)向上转型一定是安全的,从小范围转向了大范围

(2)对象一旦向上转型为父类,就无法调用子类原本的内容

2.向下转型

(1)格式:子类名称 对象名 = (子类名称)父类对象

(2)含义:将父类对象(还原)成为原来的子类对象