多态:同一对象在不同时刻表现出不同的状态。
关键:父类引用指向了子类对象
Animal a=new Cat();
执行步骤:
等号左边:
1、Animal类 ,将Animal类加载进内存空间。
2、Animal a,表示创建了一个父类引用a.
等号右边:
1、new cat(),将cat类加载到内存空间。
2、想要创建 一个猫类,但发现 猫类是 动物类的子类,子类要想创建对象,必须要先初始化父类。
3、进行父类的初始化。
4、创建子类对象,即创建猫类,进行子类的初始化,并把地址值赋值给a,因此a 是指向猫类的.
5、对父类方法进行了重写,父类成员变量不能进行重写。(因此父类.方法调用的是子类的方法。父类.成员变量 是父类的变量)
多态的特点:
成员变量:编译看左边,运行看左边。(无论静态还是非静态)
非静态成员方法:编译看左边,运行看右边。
注意结论 ,分析有点乱 |
|