继承与多态基本概念

继承

继承是面向对象的三大特征之一;

继承目的:拓展功能

产生:派生类

根本:呈现了面向对象程序设计的层次结构,体现了由简单到复杂的过程

继承的概念定义:被继承的成为基类;新产生的为派生类

在类型的继承层次结构中,保护属性看做共有属性

继承性具有传递性

任何继承关系,派生类的方法可以访问基类里的共有和保护成员

构造函数和析构函数不能被继承

*基类与派生类:

在任何需要基类对象的地方都可以用公有派生类的对象来代替,这条规则称 赋值兼容规则。

在c++面向对象编程中一条重要的规则是:公有继承意味着是一个

赋值兼容性规则:1.必须是公有继承,2.派生类->基类赋值,不可反

共有继承是

定义:是一个的意思

性质:1.同名隐藏-在父类中有相同的

2.越往上越一般能力越弱,越往下能力越强;一般到特殊 ,功能弱到功能强;子类型的能力比父类型能力强

例:普通迭代器继承常迭代器

*两层继承关系中的数据成员(访问控制)

基类          public           protected      private

public        public           protected      不能访问

proteced   protected      protected      不能访问

private       public           private          不能访问

aa中只能访问共有成员

b五个成员:有一个隐藏a对象,aa对象,bx,by,bz

继承对象和具名对象的区别:继承来的隐藏基类对象的访问共有和保护成员,设计的成员只能访问成员对象的共有

*同名隐藏

同名隐藏和函数重载??区别

多态性

在不同层次的类中,以及在同一类中

编译时的多态成为早期绑定,包含运算符的重载

早起绑定(静态联编):编译时期确定了调用关系--本质根据函数名和参数来确定该调用哪一个函数 (base.print())       例子:对象调动虚方法,早期绑定 ,

晚绑定(动态联编):对象生存后,程序运行时的多态称为晚绑定,运行过程中才能确定调用关系

实现 运行时多态(晚绑定)条件

1.公有继承关系(代表是一个的意思)2.能设计成多态的函数定义为虚函数3.用指针或者引用调动虚函数

联编是指计算机程序自身彼此关联的过程,是把一个标识符和一个存储地址联系在一起的过程,也就是把一条消息和一个对象的操作相结合的过程 

动态联编时:在编译时确定默认值,

--使用基类指针指明派生类对象并使用该指针调用虚函数(成员选择符用‘->’),则改程序(动态运行时)选择该派生类的虚函数,称做动态联编

静态联编要确定哪些属性,类型,访问控制符,函数的默认值

如果使用对象名和点成员选择运算符‘.’,引用特定的一个对象来调用虚函数,则被调用的虚函数是在编译时确定的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值