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

 

posted @ 2020-03-11 21:29  凤舞的时光  阅读(894)  评论(0编辑  收藏  举报