C艹之路 1.1f继承与派生,多态与虚函数

2020-01-08  本文已影响0人  农家小升

抽象,封装,继承,多态这是面向对象的四个特点
抽象,封装指的类的声明
继承指的是类的继承
封装

封装

派生类
  • class 派生类名 : [继承方式] 基类名
    {派生类新增的成员};
    继承方式有:public(公用的),private(私有的),protected(受保护的),默认为private(私有的)

  • 继承有三部分工作
    1.接受全部基类成员,但不接受基类的构造函数与析构函数
    2.调整成员:改变访问属性;
    3.增加新成员

访问属性
  • 公用继承
基类 继承方式 派生类
私有 公用 不可访问
公用 公用 公用
保护 公用 保护
  • 私有继承
基类 继承方式 派生类
私有 私有 不可访问
公用 私有 私有
保护 私有 私有
  • 保护继承
基类 继承方式 派生类
私有 保护 不可访问
公用 保护 保护
保护 保护 保护
多级派生

派生的构造与析构函数

  • 简单派生

  • 有子对象派生
    派生类的构造函数,需要把子类对象放在基类后面基类(),子对象()
    后面{}才是自己的参数赋值

  • 多层派生

  • 派生的特殊形式

  • 派生类的析构

多重继承

尤其注意多重继承的歧义我继承的是b还是c(如果b,c里面有相同的内容的话)

  • class D:public A,private B,protected C {类D新增成员}
  • 虚基类
    class D:virtual p** A
基类与派生类转换
继承与组合

多态与虚函数[只支持类,不支持多态,不能被称为OOB语言]

同个消息,但是不同对象收到后会有不同的行为 在C++中,不同功能的函数可以使用相同的函数名,从而可以用相同的函数名调用不同的函数

  • 利用虚函数实现动态多态性
    virtual放在void前面即可(设置在基类函数上,主要是考虑到子类函数调用)
纯虚函数
抽象类
上一篇下一篇

猜你喜欢

热点阅读