欢迎光临
我们一直在努力

深入剖析C#继承机制1-.NET教程,C#语言

建站超值云服务器,限时71元/月

一. 继承基础知识

  为了提高软件模块的可复用性和可扩充性,以便提高软件的开发效率,我们总是希望能够利用前人或自己以前的开发成果,同时又希望在自己的开发过程中能够有足够的灵活性,不拘泥于复用的模块。c#这种完全面向对象的程序设计语言提供了两个重要的特性–继承性inheritance 和多态性polymorphism。

  继承是面向对象程序设计的主要特征之一,它可以让您重用代码,可以节省程序设计的时间。继承就是在类之间建立一种相交关系,使得新定义的派生类的实例可以继承已有的基类的特征和能力,而且可以加入新的特性或者是修改已有的特性建立起类的新层次。

  现实世界中的许多实体之间不是相互孤立的,它们往往具有共同的特征也存在内在的差别。人们可以采用层次结构来描述这些实体之间的相似之处和不同之处。

图1 类图

  上图反映了交通工具类的派生关系。最高层的实体往往具有最一般最普遍的特征,越下层的事物越具体,并且下层包含了上层的特征。它们之间的关系是基类与派生类之间的关系。

  为了用软件语言对现实世界中的层次结构进行模型化,面向对象的程序设计技术引入了继承的概念。一个类从另一个类派生出来时,派生类从基类那里继承特性。派生类也可以作为其它类的基类。从一个基类派生出来的多层类形成了类的层次结构。

  注意:c#中,派生类只能从一个类中继承。这是因为,在c++中,人们在大多数情况下不需要一个从多个类中派生的类。从多个基类中派生一个类这往往会带来许多问题,从而抵消了这种灵活性带来的优势。

c#中,派生类从它的直接基类中继承成员:方法、域、属性、事件、索引指示器。除了构造函数和析构函数,派生类隐式地继承了直接基类的所有成员。看下面示例:

using system ;

class vehicle //定义交通工具(汽车)类

{

protected int wheels ; //公有成员:轮子个数

protected float weight ; //保护成员:重量

public vehicle( ){;}

public vehicle(int w,float g){

wheels = w ;

weight = g ;

}

public void speak( ){

console.writeline( "交通工具的轮子个数是可以变化的! " ) ;

}

} ;

class car:vehicle //定义轿车类:从汽车类中继承

{

int passengers ; //私有成员:乘客数

public car(int w , float g , int p) : base(w, g)

{

wheels = w ;

weight = g ;

passengers=p ;

}

}

  vehicle 作为基类,体现了"汽车"这个实体具有的公共性质:汽车都有轮子和重量。car 类继承了vehicle 的这些性质,并且添加了自身的特性:可以搭载乘客。

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » 深入剖析C#继承机制1-.NET教程,C#语言
分享到: 更多 (0)

相关推荐

  • 暂无文章