------- android培训、java培训、期待与您交流! ----------
多态:某一类事物的多种存在形态
多态的体现:父类的引用指向自己的子类对象
对象多态的前提:
1:类与类(或接口)要有继承(或实现)关系。
2:一定要有方法的覆盖。
多态的好处
多态的出现大大的提高了程序的扩展性。
多态的弊端
提高了扩展性,但是只能使用父类的引用访问父类中的成员。
转型:
- 向上转型
- Animal a = new Cat();
- a.eat();
- 向下转型
- Cat c = (Cat)a;
- c.eat();
- c.catchMouse();
多态自始至终都是子类对象在做着变化。
多态中成员的特点:
Fu f = new Zi();
1,成员变量:编译和运行都看Fu。
2,非静态方法:编译看Fu,运行看Zi。
3,静态方法:编译和运行都看Fu。
成员函数:
编译时:要查看引用变量所属的类中是否有所调用的成员。
在运行时:要查看对象所属的类中是否有所调用的成员。如果父子出现同名的方法,会运行子类中的方法,因为方法有覆盖的特性
编译看左边,运行看右边
成员变量:
编译时期:看的引用型变量所属的类中是否有所调用的变量
运行时期:也是看引用型变量所属的类是否有调用的变量
成员变量无论编译还是运行都看引用型变量所属的类,(左边)
静态函数:
编译时期:看的引用型变量所属的类中是否有所调用的变量
运行时期:也是看引用型变量所属的类是否有调用的变量
编译和运行都看等号左边
Object:是所有对象的直接或者间接父类,传说中的上帝
该类中定义的肯定是所有类的共性内容
equals和toString方法的覆盖