一、多态
定义:事物存在的多种表现形式
例如:动物中猫和狗
猫这个对象对应的类型是猫类型 猫 m = new 猫();
而猫是动物中的一种,所以也可以把猫称为动物,也就是说让父类引用指向子类对象 动物 d = new 猫();
多态的表现形式:
- 父类的引用指向了子类对象
- 父类的引用也可以接收该父类类型的对象
多态的前提:
- 必须类与类之间存在关系,要么继承要么实现
- 要存在覆盖(复写)
多态的好处:
多态的出现大大的提高了程序的扩展性
多态的弊端:
多态虽然提高了程序的扩展性,但是只能使用父类的引用访问父类的成员
多态的应用:
多态的出现代码中的特点:
在多态中成员函数的特点(非静态)
在编译时期:参阅引用型变量是否有调用的方法,如果有,则编译通过
在运行时期,参阅对象所在的类中是否有调用的方法简单一句话:编译看左边,运行看右边
白话:就是当父类引用指向子类对象时,如果调用的方法父类中有,就编译通过,没有就报错,如果有再看子类中是否重写该方法,如果重写,不言而喻肯定运行的是子类中的内容
在多态中成员变量的特点:无论编译还是运行,都参考左边
在使用多态调用成员变量时,如果父类和子类中拥有相同名称的成员变量时,左边为父类,那么调用的就是父类中的成员变量,如果左边为子类,那么就调用子类中的成员变量