继承与派生类(c#与java)

继承与派生类(c#与java)

ID:14266498

大小:143.00 KB

页数:8页

时间:2018-07-27

继承与派生类(c#与java)_第1页
继承与派生类(c#与java)_第2页
继承与派生类(c#与java)_第3页
继承与派生类(c#与java)_第4页
继承与派生类(c#与java)_第5页
资源描述:

《继承与派生类(c#与java)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、继承与派生类(C#与Java)您可以通过创建一个从现有类派生的新类来扩展现有类的功能。此派生类继承基类的属性,而且您可以根据需要添加或重写方法及属性。在C#中,继承及接口实现均由:运算符定义,此运算符与Java中的extends和implements等效。在类声明中,基类应始终位于最左侧。与Java一样,C#也不支持多重继承,这意味着这些类不能从多个类中继承。不过,您可以使用接口实现此目的,具体操作方法与Java中的操作方法相同。下面的代码使用两个私有成员变量x和y定义一个名为CoOrds的类,x和y表示该点的位

2、置。这两个变量分别通过名为X和Y属性访问:C#publicclassCoOrds{privateintx,y;publicCoOrds()//constructor{x=0;y=0;}publicintX{get{returnx;}set{x=value;}}publicintY{get{returny;}set{y=value;}}}按如下方式从CoOrds类派生一个名为ColorCoOrds的新类:C#publicclassColorCoOrds:CoOrds这样,ColorCoOrds继承了基类的所有字段和

3、方法,您可以根据需要向基类添加新的字段和方法,以在此派生类中提供其他功能。在此示例中,您将添加一个私有成员和多个访问器,以便向该类中添加颜色:C#publicclassColorCoOrds:CoOrds{privateSystem.Drawing.ColorscreenColor;publicColorCoOrds()//constructor{screenColor=System.Drawing.Color.Red;}publicSystem.Drawing.ColorScreenColor{get{retu

4、rnscreenColor;}set{screenColor=value;}}}派生类的构造函数隐式调用基类的构造函数(在Java术语中,称为超类)。在继承中,所有基类构造函数先于派生类构造函数获得调用,并按照这些类在类层次结构中出现的先后顺序调用。在类型上强制转换为基类与在Java中一样,不能使用对基类的引用访问派生类的成员和方法,即使此基类引用可能包含对此派生类型的某个对象的有效引用。您可以使用对此派生类型的引用来隐式引用某个派生类:C#ColorCoOrdscolor1=newColorCoOrds();C

5、oOrdscoords1=color1;在此代码中,基类引用coords1包含了color1引用的副本。基关键字您可以在子类中使用base关键字访问基类成员,即使当这些基成员在超类中被重写时也可执行此操作。例如,您可以创建一个派生类,该派生类中包含一个签名与基类中的签名相同的方法。如果该方法以new关键字开头,则表示此方法是属于该派生类的全新方法。您还可以使用基关键字再提供一个方法,用于访问基类中的原始方法。例如,假设CoOrds基类有一个名为Invert()的方法,它用于交换x和y坐标。您可以使用下列代码在Co

6、lorCoOrds派生类中提供此方法的替换方法:C#publicnewvoidInvert(){inttemp=X;X=Y;Y=temp;screenColor=System.Drawing.Color.Gray;}正如您所看到的,此方法先交换x和y,然后将坐标的颜色设置为灰色。您可以为此方法提供对基实现的访问,方法是在ColorCoOrds中再创建一个方法(如以下方法):C#publicvoidBaseInvert(){base.Invert();}接着通过调用BaseInvert()方法在ColorCoOrd

7、s对象中调用基方法。C#ColorCoOrdscolor1=newColorCoOrds();color1.BaseInvert();请记住,如果先将对基类的引用分配给ColorCoOrds的一个实例,然后再访问其方法,也可以得到同样的效果:C#CoOrdscoords1=color1;coords1.Invert();选择构造函数基类对象总是在任何派生类之前构建,因此,基类构造函数先于派生类构造函数获得执行。如果基类有多个构造函数,则派生类可以决定要调用哪个构造函数。例如,若要添加第二个构造函数,您可以按如下方

8、式修改CoOrds类:C#publicclassCoOrds{privateintx,y;publicCoOrds(){x=0;y=0;}publicCoOrds(intx,inty){this.x=x;this.y=y;}}接着可以使用基关键字更改ColorCoOrds类以使用某个特定的可用构造函数:C#publicclassColorCoOrds:CoOrds{pub

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。