面向对象的三大基本特征:封装、继承和多态。类对象通过 public/private/protected 关键字实现对象的封装,封装后通过继承实现多样性,而这个多样性又需要通过多态来完成。
假设要实现一个攻击的功能,不同的角色战斗力的都不同,在以往的 c 中,要完成这个功能需要对每个不同的角色都添加一个攻击函数:
|
1 2 3 |
void attack_normal(obj n) { cout << "我砍了你一刀,你流了一滴血!" << endl;} void attack_vip(obj v) { cout << "我是 VIP,我的刀是屠龙宝刀,你流了十滴血!" << endl;} void attack_rmb(obj r) { cout << "我是 RMB 玩家,你已经死了!" << endl; } |
而在有多多态后,所有的函数都可以合并为一个:
|
1 2 3 |
void attack(obj *o) { // 根据对象 o 的实际类型,攻击敌方。 } |