有的时候需要将接口和抽象类配合起来使用,这样可以为开发者提供相当的便利性,开发者觉得哪个方便就选用哪个。这样的抽象类称为便利类。此时,便利类并不需要实现接口的所有方法,可以留给继承它的子类去实现它们。这么做并非是没有意义的,当你自己写的类想用接口中个别方法的时候(注意可以不是所有的方法),那么你就可以用一个抽象类先实现这个接口(方法体中为空),然后再用你的类继承这个抽象类,这样就可以达到你的目的了,如果你直接用类实现接口,那是所有方法都必须实现的。
直接继承一个接口,就要将该接口的所有方法实现,不然会报错,代码如下:
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() { } }