1、纯虚函数

当在基类中不能为虚函数给出一个有意义的实现时(就是没定义函数体中的具体内容),可以声明为纯虚函数,纯虚函数可以交给派生类来完成,

纯虚函数的作用只是为派生类提供一个一致的借口,,,

纯虚函数的调用形式:

virtual <函数输出类型》 《函数名》《参数表》=0

<span style="font-size:18px;">#include<iostream>
using namespace std;
class point
{
protected:int x0, y0;
public:point(int i = 0, int j = 0){x0 = i; y0 = j;}virtual void set() = 0;virtual void draw() = 0;
};
class line :public point
{
protected:int x1, y1;
public:line(int i = 0, int j = 0, int m = 0, int n = 0) :point(i, j){x1 = m;y1 = n;}void set(){cout << "line::set hanshu" << endl;}void draw(){cout << "lien ::draw hanshu" << endl;}
};
class ellipse :public point
{
public:ellipse(int i = 0, int j = 0, int p = 0, int q = 0) :point(i, j){x2 = p;y2 = q;}void set(){cout << "ellipse ::set hanshu" << endl;}void draw(){cout << "ellepse draw han shu" << endl;}
protected:int x2, y2;
};
void drawobj(point *p)
{p->draw();
}
void setobj(point* p)
{p->set();
}
int main()
{line* lineobj = new line;ellipse* ellobj = new ellipse;drawobj(lineobj);drawobj(ellobj);cout << endl;setobj(lineobj);setobj(ellobj);system("psuse");return 0;
}</span>

2、抽象类

包含虚函数的类成为抽象类,抽象类是不能定义对象的,抽象类只是为子类提供一个公共的接口,

抽象类只能作为基类,不能创建抽象类的对象,因为他的纯虚函数没有定义函数体

抽象类不能作为函数的返回类型,可以声明抽象类为对象指针和对象引用,从而可以访问派生类中的对象成员

面向对象的多态性(3)相关推荐

  1. JAVA:使用面向对象的多态性模仿会员卡消费系统,设计会员卡类,可派生不同的会员卡类型,当使用不同的会员卡消费时其折扣不同。

    使用面向对象的多态性模仿会员卡消费系统,设计会员卡类,可派生不同的会员卡类型,当使用不同的会员卡消费时其折扣不同.如一般会员卡消费打9折:VIP会员卡打7折:超级VIP卡打5折.其具体的实现效果如下所 ...

  2. 面向对象的多态性(2)

    1.虚函数 在c++中,可以调用虚函数来实现运行时的多态性,,这样可以进行函数的重载 虚函数的定义是在基类中进行的,,当吧基类中的某一个成员函数定义成虚函数之后,就可以在派生类中重新定义, 在派生类重 ...

  3. 面向对象的多态性(1)

    1.多态性具体来说:就是同一个函数名称,作用在不同的对象产生不同的 ,主要针对的是基类和多个派生类之间的关系 例子: #include<iostream> using namespace ...

  4. 面向对象之多态性(基类引用可以指向子类)

    1.派生类的对象和基类是属于的关系,即 对象 is a X类,对象属于X类. 2.多态性的概念: 了解多态性之前,要熟悉引用和对象的区别: 对象存储在堆中,引用(符)存储在栈中,引用符的值是对象在堆中 ...

  5. 面向对象的特性(面向对象的多态性:转型,重载与重写)

    对于面向对象的特性,一般有两种说法:一种是三大特性,分别是封装,继承,多态,另外一种是封装,继承,多态,抽象:需要注意的是:这是面向对象的特性,不是java的特性(面向对象): 多态:多态是面向对象很 ...

  6. java 面向对象的多态性——向上转型与向下转型

    目录 类定义了之后需要被调用定义对象才能执行. 在前几篇中讨论了抽象类和接口,其中抽象方法是对这样的动作的抽象描述:动作名称相同,但不同类别具体执行动作的内容不同. 如:人类有"工作&quo ...

  7. 面向对象方法综述(工具<方法<思维<价值观)

    思想起源于上世纪六十年代(和结构化方法一样) 最早的OOPL:Simula67 最纯的OOPL:Smalltalk smalltalk的贡献:它在系统设计中强调对象概念的统一,引入对象,对象类,方法, ...

  8. java第四节 类的继承/抽象/接口/多态性

    /* 类的继承 类的继承可以简化类的定义 java只支持单继承,不允许多重继承 可以有多层继承,即一个类可以继承其一个类的子类,如类B继承了类A,类C又可以继承类B 那么类C也间接继承了类A子类继承父 ...

  9. C++中多态性学习(上)

    多态性学习(上) 什么是多态? 多态是指同样的消息被不同类型的对象接收时导致不同的行为.所谓消息是指对类的成员函数的调用,不同的行为是指不同的实现,也就是调用了不同的函数.虽然这看上去好像很高级的样子 ...

最新文章

  1. android 半浮层框架,GitHub - Jodragon/AnyLayer: Android稳定高效的浮层创建管理框架
  2. LVM的创建扩展缩减与删除
  3. MOSFET(一):基础
  4. silverlight3.0 怎么调试XAML对应的XAML.CS文件
  5. 对象 替换_JVM 对象分配过程
  6. win7、win10磁盘分区
  7. JimuReport积木报表 — SQL数据源报表制作
  8. Material-design icon生成插件
  9. JEPG图片下载方法
  10. 计算机毕业设计JAVA电影推荐网站mybatis+源码+调试部署+系统+数据库+lw
  11. 全国计算机等级四级计算机网络第6套答案,全国计算机等级考试四级计算机网络第6套试题(2)...
  12. Revit二次开发环境平台的搭建
  13. ROS、OpenAI和Gazebo机器人与人工智能仿真与实践教研杂记(二)环境构建
  14. python控制qq群_Python3 selenium 实现QQ群接龙自动化功能
  15. 微信小程序开发—引用公共js里的方法
  16. git无法推送refs到远端
  17. 输入5*5阶的矩阵,编程实现:A.求两条对角线上的各元素之和;B.求两条对角线上行、列下标均为偶数的各元素之积。
  18. 谈谈英语学习(5):听力
  19. 机器学习(学习笔记)二 模型评估与选择(上)
  20. S29GL128P Norflash驱动读写分析

热门文章

  1. Microsoft .NET Compact Framework 开发常见问题解答
  2. FT5X06 如何应用在10寸电容屏(linux-3.5电容屏驱动简析移植10寸电容屏驱动到Android4.2) (by liukun321咕唧咕唧)
  3. python什么时候用框架_python爬虫-什么时候选择selenium框架框架?
  4. PowerShell Core 6.2 发布,侧重于性能改进
  5. ext.net TreePanel单击取值
  6. autofac JSON文件配置
  7. App Inventor2项目部署到本地
  8. 从V.C.Space抄来的
  9. 基本的输入输出函数介绍
  10. [译]ChipMunk 教程1 - 设置