資源描述:
《《繼承抽象類》ppt課件》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、第九章繼承目標繼承的類型繼承的實現(xiàn)修飾符接口繼承體驗程序運行時實現(xiàn)老虎、鷹、鯊魚三個對象,分別調(diào)用它們的一個方法。繼承3-1ClassBase{//成員變量intbasevar;//成員函數(shù)Base_fun1(){//定義}…….…….ClassDerived:Base{//成員變量intderivedvars;//成員函數(shù)Derived_fun1(){//定義}…….…….基類voidmain(){Derivedobjdr=newDerived();objdr.Base_fun1();}派生類繼承而來狗豬
2、繼承3-2動物基類派生類繼承的層次結(jié)構(gòu)示例繼承3-3ClassAnimal{//成員變量inteyes,nose;Animal(){eyes=2;nose=1;}Pet_Animal(){//定義}}基類ClassDog:Animal{//成員變量//成員函數(shù)privateBarking(){//定義}privateWagging_Tail(){}}派生類繼承C#中的類publicclassGraduate:Student,Employee{//成員變量//成員函數(shù)}多重繼承?允許多重接口實現(xiàn)不能多重繼承用
3、于從派生類中訪問基類成員可以使用base關(guān)鍵字調(diào)用基類的構(gòu)造函數(shù)關(guān)鍵字base調(diào)用base構(gòu)造函數(shù)publicclassTeacher:Person{privateuintid;//調(diào)用Teacher構(gòu)造函數(shù)publicTeacher(stringname,uintage,uintid):base(name,age){this.id=id;Console.WriteLine(id);}}:base關(guān)鍵字將調(diào)用Person類構(gòu)造函數(shù)示例publicclassPerson{publicstring_name;p
4、ublicuint_age;publicPerson(stringname,uintage){this._name=name;this._age=age;Console.WriteLine(_name);Console.WriteLine(_age);}}publicclassTeacher:Person{privateuint_id;publicTeacher(stringname,uintage,uintid):base(name,age){this._id=id;Console.WriteLine(_
5、id);}}staticvoidMain(string[]args){//構(gòu)造StudentTeacherobjt=newTeacher(“張三",32,003);}關(guān)鍵字overrideClassDerived:Base{//成員變量intderivedvars;//成員函數(shù)overrideFunc1(){//定義}…….…….基類派生類ClassBase{//成員變量intbasevar;//成員函數(shù)Func1(){//定義}…….…….關(guān)鍵字virtual[Accessmodifier]virtual
6、[returntype]name([parameters-list]){...//Virtual方法實現(xiàn)...}publicvirtualvoidFunc(){Console.WriteLine(“這是virtual方法,可以在派生類中被重寫");}抽象類和抽象方法2-1abstractclassClassOne{//類實現(xiàn)}不能實例化派生類的基類abstractclassBase{//成員變量intbasevar;//成員函數(shù)abstractvoidbase_fun1(parameters);//無法實現(xiàn)
7、…….}classDerived:Base{//成員變量intderivedvars;//成員函數(shù)overridevoidBase_fun1(parameters){//實際實現(xiàn)...}抽象類派生類抽象類和抽象方法2-2必須重寫多重接口實現(xiàn)C#不允許多重類繼承但C#允許多重接口實現(xiàn)這意味著一個類可以實現(xiàn)多個接口多重接口示例publicinterfaceIPictBase{voidApplyBeta();}//第二個接口publicinterfaceIPict{intDeleteImage();voidDis
8、playImage();}publicclassBaseIO{publicvoidOpen(){Console.WriteLine(“BaseIO的Open方法");}}staticvoidMain(string[]args){MyImagesobjM=newMyImages();objM.DisplayImage();objM.DeleteImage();objM.Open();objM.ApplyBeta()