没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
第
12
章
多态性与虚函数
第
12
章
多态性与虚函数
主讲教师 贺利坚
第
12
章
多态性与虚
函数
第
章
多态性与虚
12.1
多态性的概念
12.1
多态性的概念
12.2一个典型的例子
12.3虚函数
12.4纯虚函数与抽象类
贺利坚 Email: sxhelijian@163.com
多态性的
概
念
多态性的 念
# 多态性(polymorphism)是面向对象程序设计的一个重要特
征
利用多态性可以设计和实现 个易于扩展的系统
征
。
利用多态性可以设计和实现
一
个易于扩展的系统
。
# 在C++中多态性的表述
多态 有 个 名
这
$
多态
性是指具
有
不同功能的函数可以用同一
个
函数
名
,
这
样就可以用一个函数名调用不同内容的函数。
在面向对象方法中多态性的表述
#
在面向对象方法中多态性的表述
$ 向不同的对象发送同一个消息,不同的对象在接收时会产
生不同的行为
(
即方法
)
生不同的行为
(
即方法
)
。
$ 每个对象可以用自己的方式去响应共同的消息。
#
在
C++
程序设计中
在不同的类中定义了其响应消息的方法
#
在
C++
程序设计中
,
在不同的类中定义了其响应消息的方法
,
使用这些类时,不必考虑它们是什么类型,只要发布消息即
可
,
响应的细节由消息
接受者决定
。
贺利坚 Email: sxhelijian@163.com
可
,
响应的细节由消息
接受者决定
。
多态性
分
为
两
类
多态性 为 类
# 静态多态性
$ 函数重载和运算符重载实现的多态性属于静态多态性,
在程序编译时系统就能决定调用的是哪个函数,因此,
又称编译时的多态性。
$ 静态多态性是通过函数的重载实现的(运算符重载实
质上也是函数重载)。
#
动
态
多
态
性
动多性
$ 动态多态性是在程序运行过程中才动态地确定操作所
针对的对象
,
因此
,
又称运行时的多态性
。
针对的对象
,
因此
,
又称运行时的多态性
$ 动态多态性是通过虚函数(virtualfunction)实现
的
。
贺利坚 Email: sxhelijian@163.com
的
。
要研究的问题
classVehicle
要研究的问题
# 当一个基类被继承为不同的
派生类时
各派生类 以使
{public:
virtualvoidrun()const=0;
}
;
派生类时
,
各派生类
可
以使
用与基类成员相同的成员名:
$
如果
在运行时用同 个成
}
classCar:publicVehicle
{public:
void
run() const
$
如果
在运行时用同
一
个成
员名调用类对象的成员,
会调用哪个对象的成员
?
void
run()
const
{……}
};
class Airplane:public
Vehicle
会调用哪个对象的成员
?
# 通过继承而产生了相关的不
同的派生类
,
与基类成员同
class
Airplane:public
Vehicle
{public:
voidrun()const
{}
同的派生类
,
与基类成员同
名的成员在不同的派生类中
有不同的含义。
{
……
}
};
intmain()
————多态性是“一个接口,多
种方法”。
{Carcar;
Airplaneairplane;
car.run();
贺利坚 Email: sxhelijian@163.com
airplane.run();
}
剩余42页未读,继续阅读
资源评论
迂者-贺利坚
- 粉丝: 3w+
- 资源: 137
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功