zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    【monkey测试】Fragment not attached to Activity
    android加载字体内存泄漏的处理方法
    性能测试—瓶颈分析方法
    EXT 环境部署
    测试用例设计
    软件测试职业规划
    mysql存储过程
    testlink安装
    并崩溃原因及解决方案
    MySQL正则表达式
  • 原文地址:https://www.cnblogs.com/FengTime/p/12465589.html
Copyright © 2011-2022 走看看