欢迎来到天天文库
浏览记录
ID:45727010
大小:365.00 KB
页数:17页
时间:2019-11-17
《第9章继承抽象类》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第九章继承目标继承的类型继承的实现修饰符接口继承体验程序运行时实现老虎、鹰、鲨鱼三个对象,分别调用它们的一个方法。继承3-1ClassBase{//成员变量intbasevar;//成员函数Base_fun1(){//定义}…….…….ClassDerived:Base{//成员变量intderivedvars;//成员函数Derived_fun1(){//定义}…….…….基类voidmain(){Derivedobjdr=newDerived();objdr.Base_fun1();}派生类继承而来狗猪继承3-2动物基类派生类继承的层次结构示例继
2、承3-3ClassAnimal{//成员变量inteyes,nose;Animal(){eyes=2;nose=1;}Pet_Animal(){//定义}}基类ClassDog:Animal{//成员变量//成员函数privateBarking(){//定义}privateWagging_Tail(){}}派生类继承C#中的类publicclassGraduate:Student,Employee{//成员变量//成员函数}多重继承?允许多重接口实现不能多重继承用于从派生类中访问基类成员可以使用base关键字调用基类的构造函数关键字base调用bas
3、e构造函数publicclassTeacher:Person{privateuintid;//调用Teacher构造函数publicTeacher(stringname,uintage,uintid):base(name,age){this.id=id;Console.WriteLine(id);}}:base关键字将调用Person类构造函数示例publicclassPerson{publicstring_name;publicuint_age;publicPerson(stringname,uintage){this._name=name;thi
4、s._age=age;Console.WriteLine(_name);Console.WriteLine(_age);}}publicclassTeacher:Person{privateuint_id;publicTeacher(stringname,uintage,uintid):base(name,age){this._id=id;Console.WriteLine(_id);}}staticvoidMain(string[]args){//构造StudentTeacherobjt=newTeacher(“张三",32,003);}关键字ov
5、errideClassDerived:Base{//成员变量intderivedvars;//成员函数overrideFunc1(){//定义}…….…….基类派生类ClassBase{//成员变量intbasevar;//成员函数Func1(){//定义}…….…….关键字virtual[Accessmodifier]virtual[returntype]name([parameters-list]){...//Virtual方法实现...}publicvirtualvoidFunc(){Console.WriteLine(“这是virtual方法
6、,可以在派生类中被重写");}抽象类和抽象方法2-1abstractclassClassOne{//类实现}不能实例化派生类的基类abstractclassBase{//成员变量intbasevar;//成员函数abstractvoidbase_fun1(parameters);//无法实现…….}classDerived:Base{//成员变量intderivedvars;//成员函数overridevoidBase_fun1(parameters){//实际实现...}抽象类派生类抽象类和抽象方法2-2必须重写多重接口实现C#不允许多重类继承但C
7、#允许多重接口实现这意味着一个类可以实现多个接口多重接口示例publicinterfaceIPictBase{voidApplyBeta();}//第二个接口publicinterfaceIPict{intDeleteImage();voidDisplayImage();}publicclassBaseIO{publicvoidOpen(){Console.WriteLine(“BaseIO的Open方法");}}staticvoidMain(string[]args){MyImagesobjM=newMyImages();objM.DisplayI
8、mage();objM.DeleteImage();objM.Open();objM.ApplyBeta()
此文档下载收益归作者所有