第3章面向对象技术6

第3章面向对象技术6

ID:30861716

大小:174.50 KB

页数:15页

时间:2019-01-04

第3章面向对象技术6_第1页
第3章面向对象技术6_第2页
第3章面向对象技术6_第3页
第3章面向对象技术6_第4页
第3章面向对象技术6_第5页
资源描述:

《第3章面向对象技术6》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、第5讲继承5.1C#的继承机制5.1.1概述儿个概念:基类,父类,派生类,子类,单继承,多继承。1、简单继承例:usingSystem;classVehicle〃定义汽车类{intwheels;〃公有成员轮子个数protectedfloatweight;〃保护成员重量publicVehicle(){;}publicVehicle(intw,floatg){wheels=w;weight=g;}publicvoidSpeak(){Console.WriteLine("thewvehicleisspeaking!");}}

2、;classCar:Vehicle〃定义轿车类从汽车类中继承{intwheels;〃公有成员轮子个数protectedfloatweight;intpassengers;〃私有成员乘客数publicCar(intw,floatg,intp):base(w,g){wheels=w;weight=g;passengers=p;)publicvoidSpeak()Console.WriteLine(uthewvehicleisspeaking!'r);c#屮的继承符合下列规则:•继承是可传递的如果CUB中派生,B乂从A中派生

3、。那么C不仅继承了B屮声明的成员,同样也继承了A屮的成员,Object类作为所有类的基类。•派生类应当是对基类的扩展派生类可以添加新的成员,但不能除去已经继承的成员的定义。•构造函数和析构函数不能被继承除此以外的其它成员,不论对它们定义了怎样的访问方式,都能被继承。基类中成员的访问方式只能决定派生类能否访问它们。•派牛类如杲定义了与继承而来的成员同名的新成员,就可以覆盖已继承的成员。但这并不因为这派生类删除了这些成员,只是不能再访问这些成员。•类可以定义虚方法虚属性以及虚索引指示器它的派牛类能够重载这些成员,从而实现类

4、可以展示出多态性。再看一个例子:usingSystem;usingSystem.Text;classPerson{privatestringfirstName;privatestringmiddleName;privatestringlastName;privateintage;publicPerson(){}publicPerson(stringfn,stringIn){firstName=fn;lastName=In;}publicPerson(stringfn,stringmn,stringIn){firstNa

5、me=fn;middleName=mn;lastName=In;}publicPerson(stringfn,stringmn,stringIn,inta){firstName=fn;middleName=mn;lastName=In;age=a;publicvoiddisplayAge(){Console.WriteLineC'Age{0}”,age);}publicvoiddisplayFullName(){StringBuilderFullName=newStringBuilder();FullName.Appe

6、nd(firstName);FullName.Append(H");if(middleName!=“”){FullName.Append(middleName[OJ);FullName.Append(".");1FullName.Append(lastName);Console.WriteLine(FullName);}}classNameApp{publicstaticvoidMain(){Personme=newPerson(,,Bradley,MLeeM,MJonesu);PersonmyWife=newPer

7、son(uMelissa","Anne","Jones",21);me.displayFullNameO;me.displayAge();myWife.displayFullName();myWife.displayAge();)}结果:BradlyLJonesAge0MelissaA.JonesAge21继承usingSystem;usingSystem.Text;classPersonprotectedstringfirstName;protectedstringmiddleName;〃不能访问基类中的私有成员pr

8、otectedstringlastName;privateintage;//ToDo:AddpropertiestoaccessdatamemberspublicPerson()publicPerson(stringfn,stringIn){firstName=fn;lastName=In;}publicPerson(string

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

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

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