概念(复习用)
什么是多态
多态:在面向对象编程中,一种接口(函数)的多种实现(函数内容,作用域)即为多态;多态分静态和动态;静态是指在编译时就可以确定选择哪种实现,动态是运行时才确定选择哪种实现;
静态有函数重载和泛型编程,如add()根据数据类型重载,在编译时就能选好哪一个;动态是虚函数,比如父类和子类中有同名函数delete_data(),在运行时通过基类指针指向的不同对象来选择到底调用哪个;
C++谈多态一般指动态的多态;
什么是虚函数
虚函数:定义函数时在最前面加上virtua关键字;就定义了一个虚函数;
注意:
1、虚函数只能是类中的非静态成员函数,也就是普通成员函数和析构函数;
2、不能是构造函数,但可以是析构函数;
怎么实现(多态)多态
C++用虚函数来实现,在父类中定义虚函数,子类中重写,运行时根据对象的实际数据类型来调用相应函数,如果对象类型是基类,则调用基类的虚函数,反之调用子类的虚函数;
三个条件:
1、前提:有子类有继承;
2、在子类中必须对基类的虚函数进行重写;
3、必须通过基类指针指向子类对象或者基类引用子类对象;
怎么理解:
1、有继承才有一个函数名在父、子类中不同的实现,才能谈多态;