一般情況下,類繼承接口,要實現接口中的所有成員。 若需要只實現部分成員,可以用抽象類過渡的方式。
見下面例子。

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 }