多态的概念dom
2.举个栗子
好比买票这个行为,当普通人买票时,是全价买票;学生买票时,是半价买票;军人买票时是优 先买票。
再举个栗子: 最近为了争夺在线支付市场,支付宝年末常常会作诱人的扫红包-支付-给奖励金的活动。那么 你们想一想为何有人扫的红包又大又新鲜8块、10块…,而有人扫的红包都是1毛,5毛…。其实这背后也是 一个多态行为。支付宝首先会分析你的帐户数据,好比你是新用户、好比你没有常常支付宝支付等等,那么 你须要被鼓励使用支付宝,那么就你扫码金额 = random()%99;好比你常常使用支付宝支付或者支付宝帐户 中常年没钱,那么就不须要太鼓励你去使用支付宝,那么就你扫码金额 = random()%1;总结一下:一样是 扫码动做,不一样的用户扫获得的不同的红包,这也是一种多态行为。ps:支付宝红包问题纯属瞎编,你们 仅供娱乐。
多态的定义及实现ide
1.多态定义的构成条件函数
多态是在不一样继承关系的类对象,去调用同一函数,产生了不一样的行为。好比Student继承了Person。 Person对象买票全价,Student对象买票半价。指针
那么在继承中要构成多态的还有两个条件:code
调用函数的对象必须是指针或者引用 被调用的函数必须是虚函数,且完成了虚函数的重写
这里提到的虚函数是什么呢?对象
虚函数:就是在类的成员函数的前面加virtual关键字
什么是虚函数的重写?继承
虚函数的重写:派生类中有一个跟基类的彻底相同虚函数,咱们就称子类的虚函数重写了基类的虚函数,彻底相同是指:函数名、参数、返回值都相同。另外虚函数的重写也叫做虚函数的覆盖