有的時候需要將接口和抽象類配合起來使用,這樣可以為開發者提供相當的便利性,開發者覺得哪個方便就選用哪個。這樣的抽象類稱為便利類。此時,便利類並不需要實現接口的所有方法,可以留給繼承它的子類去實現它們。這么做並非是沒有意義的,當你自己寫的類想用接口中個別方法的時候(注意可以不是所有的方法),那么你就可以用一個抽象類先實現這個接口(方法體中為空),然后再用你的類繼承這個抽象類,這樣就可以達到你的目的了,如果你直接用類實現接口,那是所有方法都必須實現的。
直接繼承一個接口,就要將該接口的所有方法實現,不然會報錯,代碼如下:
public interface AInterface { public void Hello1(); public void Hello2(); public void Hello3(); public void Hello4(); public void Hello5(); } public class TestClass : AInterface { public void Hello1() { } public void Hello2() { } public void Hello3() { } public void Hello4() { } public void Hello5() { } }
如果想繼承接口AInterface,但又不想實現全部方法,中間就需要加一個抽象類,代碼如下:
/// <summary> /// 接口 /// </summary> public interface AInterface { public void Hello1(); public void Hello2(); public void Hello3(); public void Hello4(); public void Hello5(); } /// <summary> /// 抽象類,實現AInterface接口 /// </summary> public abstract class BAbstract : AInterface { public void Hello1() { } public void Hello2() { } public void Hello3() { } public void Hello4() { } public void Hello5() { } } /// <summary> /// 繼承抽象類AInterface,實現相應的方法 /// </summary> public class TestClass : BAbstract { public new void Hello1() { } public void Hello2() { } }
