1 / 16
文档名称:

深入剖析csharp继承机制.doc

格式:doc   大小:90KB   页数:16页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

深入剖析csharp继承机制.doc

上传人:wxc6688 2020/2/23 文件大小:90 KB

下载得到文件列表

深入剖析csharp继承机制.doc

文档介绍

文档介绍:深入剖析C#继承机制 1概述 1二、C#的继承规则 3三、访问与隐藏基类成员 4(一)访问基类成员 4(二)隐藏基类成员 6四、多级继承 10五、继承与访问修饰符 11深入剖析C#继承机制天雨概述 继承就是在类之间建立一种相交关系,使得新定义的派生类的实例可以继承已有的基类的特征和能力。 为了提高软件模块的可复用性和可扩充性,以便提高软件的开发效率,我们总是希望能够利用前人或自己以前的开发成果,同时又希望在自己的开发过程中能够有足够的灵活性,不拘泥于复用的模块。C#这种完全面向对象的程序设计语言提供了两个重要的特性--继承性inheritance和多态性polymorphism。继承是面向对象程序设计的主要特征之一,它可以让您重用代码,可以节省程序设计的时间。继承就是在类之间建立一种相交关系,使得新定义的派生类的实例可以继承已有的基类的特征和能力,而且可以加入新的特性或者是修改已有的特性建立起类的新层次。现实世界中的许多实体之间不是相互孤立的,它们往往具有共同的特征也存在内在的差别。人们可以采用层次结构来描述这些实体之间的相似之处和不同之处。图1类图上图反映了交通工具类的派生关系。最高层的实体往往具有最一般最普遍的特征,越下层的事物越具体,并且下层包含了上层的特征。它们之间的关系是基类与派生类之间的关系。为了用软件语言对现实世界中的层次结构进行模型化,面向对象的程序设计技术引入了继承的概念。一个类从另一个类派生出来时,派生类从基类那里继承特性。派生类也可以作为其它类的基类。从一个基类派生出来的多层类形成了类的层次结构。注意:C#中,派生类只能从一个类中继承。这是因为,在C++中,人们在大多数情况下不需要一个从多个类中派生的类。从多个基类中派生一个类这往往会带来许多问题,从而抵消了这种灵活性带来的优势。C#中,派生类从它的直接基类中继承成员:方法、域、属性、事件、索引指示器。除了构造函数和析构函数,派生类隐式地继承了直接基类的所有成员。看下面示例:usingSystem;classVehicle//定义交通工具(汽车)类{protectedintwheels;//公有成员:轮子个数protectedfloatweight;//保护成员:重量publicVehicle(){;}publicVehicle(intw,floatg){wheels=w;weight=g;}publicvoidSpeak(){("交通工具的轮子个数是可以变化的!");}};classCar:Vehicle//定义轿车类:从汽车类中继承{intpassengers;//私有成员:ar(intw,floatg,intp):base(w,g){wheels=w;weight=g;passengers=p;}}Vehicle作为基类,体现了"汽车"这个实体具有的公共性质:汽车都有轮子和重量。Car类继承了Vehicle的这些性质,并且添加了自身的特性:可以搭载乘客。二、C#的继承规则 1、继承是可传递的。如果C从B中派生,B又从A中派生,那么C不仅继承了B中声明的成员,同样也继承了A中的成员。Object类作为所有类的基类。 2、派生类应当是对基类的扩展。派生类可以添加新的成员,但不能除去已经继承的成员的定义。 3、构造函数和析构函数不能被继承。除此以外的其它成员,不论对它们定义了怎样的访问方式,都能被继承。基类中成员的访问方式只能决定派生类能否访问它们。 4、派生类如果定义了与继承而来的成员同名的新成员,就可以覆盖已继承的成员。但这并不因为这派生类删除了这些成员,只是不能再访问这些成员。 5、类可以定义虚方法、虚属性以及虚索引指示器,它的派生类能够重载这些成员,从而实现类可以展示出多态性。 6、派生类只能从一个类中继承,可以通过接吕实现多重继承。下面的代码是一个子类继承父类的例子:usingSystem;lassParentClass{publicParentClass(){("父类构造函数。");}publicvoidprint(){("I'maParentClass。");}}lassChildClass:ParentClass{hildClass(){("子类构造函数。");}publicstaticvoidMain(){ChildClasschild=newChildClass();();}}程序运行输出: 父类构造函数。子类构造函数。I'maParentClass。上面的一个类名为ParentClass,main函数中用到的类名为ChildClass。要做的是

最近更新

商务办公楼车位租赁及增值服务合作协议 2页

商铺绿化植被养护与物业管理合同 3页

国际分公司运营管理服务合同 3页

国际货物运输代理合同模板 3页

国际贸易租赁合同履行与资产维护协议 3页

土地平整爆破作业劳务分包合同 2页

地下室租赁合同(含增值服务)样本 3页

地下车库及附属设施投资合作合同 2页

地产楼盘销售经理劳动合同范本解析 3页

地基处理与土壤改良施工合同标准文本 3页

地材供货与生态修复工程合同 3页

地磅采购与新型材料应用合同 3页

地质灾害防治土石方运输合同 3页

地铁站商铺租赁合同附停车场使用及管理协议 4页

场部信息保密与信息安全培训合同 3页

城市更新项目报建代理与规划设计合同 3页

城市综合体地下车库车位使用权转让协议 3页

2025年最新个人自我鉴定总结 9页

城市绿化提升工程承包施工合同范本 3页

2025年最新《长征之歌》专题片优秀观后感篇 11页

壁挂炉能效改造工程合同 3页

外贸代理合同书详细条款 2页

2025年最新2025离职申请书优秀范文 9页

大型设备运输及安装服务合同 2页

大学生家庭父母离婚子女监护权移交及抚养费合.. 3页

采棉机驾驶员职业技能鉴定与劳动合同 3页

中国急性期缺血性脑卒中诊治指南2025 12页

焦虑自评量表SAS完整 6页

风力发电施工安全培训课件 35页

升压站调试方案 11页