什么是实现类和对象多态性的关键机制?
- 内容介绍
- 文章标签
- 相关推荐
本文共计809个文字,预计阅读时间需要4分钟。
多态C++面向对象三大特性之一+多态分为两类+1.静态多态:函数重载和运算符重载属于静态多态,复用函数名+2.动态多态:通过派生类和虚函数实现运行时多态。静态多态和动态多态的区别
多态是C++面向对象三大特性之一
多态分为两类
1.静态多态:函数重载 和 运算符重载属于静态多态,复用函数名
2.动态多态:派生类和虚函数实现运行时多态。
静态多态和动态多态的区别:
静态多态的函数地址早绑定-编译阶段确定函数地址。
动态多态的函数地址晚绑定-运行阶段确定函数地址。
动态多态满足条件
1.存在继承关系
2.子类重写父类的虚函数
重写 函数返回值类型 函数名 参数列表 完全相同
动态多态使用
父类指针或引用 指向子类对象
例子:
son1类和son2类是person类的子类,并且person是抽象类
son1 a;
son2 b;
person& p = a;
p.speak();
person* p1 = new son2;
p1->speak();
person* p2 = &b;
p1->speak();
多态的优点
1.代码组织结构清晰
2.可读性强
3.利于前期和后期的扩展以及维护。
本文共计809个文字,预计阅读时间需要4分钟。
多态C++面向对象三大特性之一+多态分为两类+1.静态多态:函数重载和运算符重载属于静态多态,复用函数名+2.动态多态:通过派生类和虚函数实现运行时多态。静态多态和动态多态的区别
多态是C++面向对象三大特性之一
多态分为两类
1.静态多态:函数重载 和 运算符重载属于静态多态,复用函数名
2.动态多态:派生类和虚函数实现运行时多态。
静态多态和动态多态的区别:
静态多态的函数地址早绑定-编译阶段确定函数地址。
动态多态的函数地址晚绑定-运行阶段确定函数地址。
动态多态满足条件
1.存在继承关系
2.子类重写父类的虚函数
重写 函数返回值类型 函数名 参数列表 完全相同
动态多态使用
父类指针或引用 指向子类对象
例子:
son1类和son2类是person类的子类,并且person是抽象类
son1 a;
son2 b;
person& p = a;
p.speak();
person* p1 = new son2;
p1->speak();
person* p2 = &b;
p1->speak();
多态的优点
1.代码组织结构清晰
2.可读性强
3.利于前期和后期的扩展以及维护。

