- 1、本文档共33页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
例题 例6.1 例6.2 6.2 虚函数 虚函数同函数重载 函数重载处理的是同一层面上的同名函数问题,是一种横向重载 虚函数处理的是基类和派生类层面上的同名函数问题,是一种纵向重载 6.2.3 静态关联和动态关联 关联:确定调用函数的具体对象的过程。 静态关联:编译时就能确定的关联 动态关联:运行时才能确定的关联 实验九 课后第3题 时间:周二三单元 练习 练习题 抽象类引入 抽象类不象具体类那样描述一类具体事物,它是提取多种具有相似性的具体事物的共同特征而产生的 抽象类是不能够实例化的类,它的作用就是产生子类的同时给于子类一些特定的属性和方法. 例子:你的程序里面需要用到苹果和梨这2个类,但是你会发现这2个类里面有共同的属性和方法(属性: 都有核.. 方法: 都能吃...)。 建立抽象类 “水果” 把这些共同的东西都定义在那里. 2个子类就只需要实现自己的东西(味道, 价格...) 优点: 当需要对苹果和梨做共同的修改时候,直接对抽象类 水果 做就可以了 抽象类引入 抽象类的关键是抽象方法 设计抽象方法的原因是在于抽象类自己没有办法实现这个方法, 或者说在抽象类这一层,我们不知道如何实现这个方法,只有到了具体类才有办法知道实现。 ? 如: “动物”这个抽象类,有一个抽象方法“吃”,但是动物这个类是不能实现“吃这个方法的,因为现实中没有一个纯“动物”的实例 class Shape {public: virtual float area() const {return 0.0;} //虚函数 virtual float volume() const {return 0.0;}//虚函数 virtual void shapeName() const =0; //纯虚函数 }; class Point:public Shape {public: Point(float=0,float=0){ } virtual void shapeName() const {coutPoint:;} protected: float x,y; }; //声明Circle类 class Circle:public Point {public: Circle(float x=0,float y=0,float r=0):Point(x,y) { radius = r; } virtual float area() const{return 3.14*radius*radius;} virtual void shapeName() const {coutCircle:;} protected: float radius; }; class Cylinder:public Circle {public: Cylinder (float x=0,float y=0,float r=0,float h=0) : Circle(a,b,r),height(h){} virtual float area() const { return 2*Circle::area()+2*3.14*radius*height;} virtual float volume() const {return Circle::area()*height;} virtual void shapeName() const { coutCylinder; } protected: float height; }; * 小结 理解多态的概念、多态性的分类; 理解静态多态性与动态多态性的区别; 理解虚函数作用; 掌握虚函数的定义与使用; 掌握虚析构函数的使用; 掌握纯虚函数与抽象类的应用。 * 实验十 实验题目:多态性和虚函数(二) 实验内容:p219 ,第5题 实验时间:周五第3单元 第6章 多态性与虚函数 * 本章内容 6.1 多态性的概念 6.2 虚函数 6.3 纯虚函数与抽象类 * 目标 理解多态的概念、多态性的分类; 理解静态多态性与动态多态性的区别; 理解虚函数作用; 掌握虚函数的定义与使用; 掌握虚析构函数的使用; 掌握纯虚函数与抽象类的应用。 * 本章内容 6.1 多态性的概念 6.2 虚函数 6.3 纯虚函数与抽象类 6.1 多态性 类是对象的抽象,对象是类的实例 面向对象程序设计的三大特性 封装性——基础 继承性——关键 多态性
文档评论(0)