c# 中接口成員的部分實現


一般情況下,類繼承接口,要實現接口中的所有成員。 若需要只實現部分成員,可以用抽象類過渡的方式。
見下面例子。
 1 namespace 接口的部分實現_抽象類_
 2 {
 3 
 4     //目標:聲明一個接口,里面有三個方法,用一個派生類只實現其中的2個方法
 5     interface Iperson
 6     {
 7         void speak();          //說話
 8         void eat();              //吃飯 
 9         void work();           //工作
10 
11     }
12     //使用一個抽象類繼承接口Iperson,把其中2個方法變為 非抽象方法。
13     public abstract class man:Iperson    
14     {
15         public void speak()     //抽象類中的非抽象方法,可以給子類繼承
16         { Console.WriteLine ("每個人都需要睡覺"); }   
17         public  void eat() { }
18         public abstract void work();    // 抽象方法,可以在子類中重寫。給子類自己定義不一樣主體。
19 
20         public void sleep() { Console.WriteLine ( "不管大人小孩子都需要睡覺" ); }  //抽象類中額外加的方法,睡覺。
21         
22     }
23 
24     /*-----用抽象類派生 ,重寫其中的某一個方法,實現對接口部分方法的實現-----*/
25     public  class boy : man                 //由抽象類派生boy
26     {
27         public override void work()        //重寫方法
28         {
29             Console.WriteLine ( "小孩子不需要工作" );
30 
31             // 里面的其他非抽象方法直接繼承,不用重寫,可以實例化之后調用。
32         }
33     }
34 
35     class Program
36     {
37         static void Main( string [ ] args )
38         {
39             //用派生類boy實例化
40             boy XiaoMing = new boy();
41             XiaoMing.speak ();                    //調用抽象類man,里面的《非抽象方法》
42             XiaoMing.work ();                      //調用派生類boy,里面的 《重寫方法》
43             XiaoMing.sleep ();                     //調用抽象類man里,新加的方法。
44 
45             Console.Read ();
46 
47             //這樣,在接口Iperson中,有三個方法。而在間接實現了Iperson的派生類(boy類)中,只實現了它的兩個方法。
48         }   //完成了對接口成員的部分實現
49     }       //注意事項:  在使用 抽象類 過渡時,在抽象類中 一定要實現繼承接口中的所有方法。可以是具體方法,也可以是抽象方法。
50 }
View Code

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM