面向对象—多态
多态:事物存在的多种体现形态。
多态的体现
父类的引用指向了自己的子类对象。
父类的引用也可以接受自己的子类对象。
多态的前提
必须是类于类之间有关系,要么继承,要么实现。
通常还有一个前提:存在覆盖。
多态的好处
1. 提高了代码的拓展性;
多态的弊端
提高了代码拓展性,但只能使用父类的引用访问父类中的成员。
多态的应用
在多态中(非静态)成员函数的特点:(动态绑定、静态绑定)
在编译时期,参阅引用变量所属的类中是否有词用的方法。如果有,编译通过,如果没有,编译失败。
在运行时期,参阅对象所属的类中是否有调用的方法。
简单总结就是:成员函数在多态调用,编译看左边,运行看右边。
在多态中,成员变量的特点:
无论编译和运行,都参考左边(引用型变量所属的类)。
在多态中,静态函数的特点:
无论编译和运行,都参考左边。
Class Animal
{
Public Abstract void eat()
{
}
}
class Cat extwnds Animal {
public void eat()
{
System.out.println(“吃鱼”);
}
Public void catchMouse()
{
System.out.println(“捉老鼠”);
}
}
在以上代码中,Cat不仅实现了Animal的eat特性,而且具有了Cat自己所特有的catchMouse功能,这就是多态的体现。