简单说就是允许派生类对象的地址赋值给父类类型的指针。
虚函数允许被派生类重新定义的基类的成员函数。
虚函数在派生类中被改写的,这种被称作覆盖 override
覆盖是派生类重写了基类的虚函数,重写的虚函数属于覆盖,因此需要有一致的参数表和返回值,
真正与多态相关的是覆盖,当派生类重新定义的基类的虚函数后,基类的指针根据复制给他的不同的派生类的指针,动态的调用属于该派生类的该函数,这样的函数调用在编译期间是无法确定的,是在运行的期间绑定的,属于晚绑定。
多态的作用是为了接口重用,
但是重载属于函数名相同但是函数的参数表不同,重载不是面向对象的一种编程。