关于多态的问题
我想问一下覆盖、重载、虚函数这三种机制的异同点是什么?
覆盖 (override):
-----------------------------------------------------------------------------------------------------------------
Override覆盖是指在子类(c++中的派生类) 中重新定义父类的函数,其函数名、参数列、返回值类型必须同
父类中的相对应被覆盖的函数严格一致,覆盖函数和被覆盖函数只有函数体(花括号中的部分)不 同,当派生
类对象调用子类中该同名函数时会自动调用子类中的覆盖版本,而不是父类中的被覆盖函数版本。
-----------------------------------------------------------------------------------------------------------------
重载(overload):
在同一个类中,出现多个同名的方法的现象就是Overload 重载是发生在同一个类中,不同方法之间的现象。
-----------------------------------------------------------------------------------------------------------------
多态(polymorphism):
多态在程序设计领域,一个广泛认可的定义是“一种 将不同的特殊行为和单个泛化记号相关联的能力”。和纯
粹的面向对象程序设计语言不同,C++中的多态有着更广泛的含义。除了常见的通过类继承和虚函数机制 生效
于运行期的动态多态外,模板也允许将不同的特殊行为和单个泛化记号相关联,由于这种关联处理于编译期而
非运行期,因此被称为静态多态 。