c++与c#中概念的不同理解

来源:互联网 发布:彩票选号优化方法 编辑:程序博客网 时间:2024/05/17 08:11

虚基类

多态继承中,当派生类的部分或全部直接基类又是从另一个共同基类派生而来时这些直接基类中从上一级共同基类继承来的成员就拥有相同的名称。在派生类的对象中,同名数据成员在内存时期拥有多个拷贝,同一个成员函数会有多个映射,出现二义性,这个二义性为间接二义性。

解决的方法是:将共同基类设置为虚基类。

这时从不同的路径继承过来的同名数据成员在内存中就只有一个拷贝,同一个函数名也就只有一个映射。

虚基类的定义如下

Class派生类名: virtual继承方式 基类名

多继承情况下,虚基类关键字的作用范围和继承方式关键字相同,只对紧跟其后的基类起作用。

 

如下给一个实例

 

 

使用虚基类定义

 Class Car :virtual public Automobile //小客车类

Class Wagon : virtual public Automobile //小货车类

这时候,从Automobile中不同途径继承来的power,show() 在SationWago中就只有一个拷贝了

而在C#中,是不允许这样的多继承的,但是允许多接口的实现

 

++++++++++++++++++++++++++++++++++++++++++

虚函数

 是C++语言引入的一个很重要的特性,它提供了“动态绑定”机制,正是这一机制使得继承的语义变得相对明晰。对继承体系的使用者而言,此继承体系内部的多样性是“透明的”。它不必关心其继承细节,处理的就是一组对它而言整体行为一致的“对象

特点

  基类抽象了通用的数据及操作,就数据而言,如果该数据成员在各派生类中都需要用到,那么就需要将其声明在基类中;就操作而言,如果该操作对各派生类都有意义,无论其语义是否会被修改或扩展,那么就需要将其声明在基类中。

定义方式

Virtual函数类型 函数(形参表)

{

函数体;

}

联编也可以在运行时进行,成为动态联编。使用虚函数是实现动态联编的基础。要实现动态联编,需要满足三个条件

1 应满足类型兼容规则

2在基类中定义虚函数,并在派生类中重新定义虚函数。

3 要由成员函数或通过指针,引用访问虚函数。

 

注意:虚函数不能是静态成员函数,也不能是友元函数,因为静态成员函数和友元函数不属于某一个对象

 

纯虚函数  (抽象类中定义)

 是一个在基类中说明的虚函数, 它在该基类中没有定义具体实现,要求各派生类根据实际需要定义函数实现。纯虚函数的作用是为派生类提供一个一致的接口,实现多态的一种方式。

定义方法

Vitual  函数类型函数名(参数表)=0;

 

=========================

以上是c++中实现多动态的一些方法。而在c#中是如何实现呢

 

c#

(默认都是Object的派生类)

base关键字 ,来引用基类的构造函数的。

通过virtual关键字声明虚基类或(虚方法),也可定义抽象类和抽象方法,然后利用Override,派生类 来重写基类的方法。

开放扩展,关闭修改等原则

抽象类的特性

抽象类是不能实例化

抽象类可包含抽象方法和抽象访问器

不能由Sealed修饰符修改抽象类

抽象方法特性

抽象方法默认是隐士的虚方法

只允许在抽象类中使用抽象方法声明

 

多态   是利用重载和覆写的方式

详见下图

单击图片外链

 

 

 

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 小孩特别懒不爱学习怎么办 小孩上三年级不爱学习怎么办 一年级孩子做题粗心怎么办 一年级的孩子做题粗心怎么办 一年级娃娃做题粗心怎么办 有同学抄作业该怎么办 同学要抄我作业怎么办 同桌抄我作业我该怎么办 孩子想换同桌老师不同意怎么办 尴尬的事情心里难受怎么办 孩子撒谎不完成作业怎么办 孩子撒谎不交作业怎么办 孩子不爱写作业撒谎怎么办 大便又粗又硬怎么办 二年级末考紧张怎么办 孩子粗心做数学题老出错怎么办 生地会考考了140怎么办 数学成绩考砸了怎么办? 考砸了家长发火怎么办 大型考试考砸了怎么办 能力考试考砸了怎么办 考砸了老师批评怎么办 英语抽测考砸了老师怎么办? 辅导班学生考砸了老师怎么办 好学生考砸了怎么办? 孩子学习不认真马虎怎么办 孩子做作业不认真马虎怎么办 一年级小孩学习不认真怎么办 孩子做题审题不认真怎么办 初二孩子不认真审题怎么办 孩子总是粗心抄错题看错题怎么办 孩子总马虎我要怎么办 年检标志跟车牌号不一样怎么办 纹完身后喝酒了怎么办 孩子学习态度不端正怎么办 孩子高考三模考差了家长怎么办 一年级学生学习马虎大意怎么办 一年级下册孩子做作业马虎怎么办 一年级孩子做题马虎怎么办 四年级小孩不喜欢数学该怎么办 工作出了大错误怎么办