接口是方法的抽象,如果不同的类有同样的方法,那么就应该考虑使用接口。
一个小例子:
interface IA
{
void MethodA();
}
interface IB : IA
{
void MethodB();
}
interface IC : IB
{
void MethodC();
}
//class MyClass : IC {} //错误的写法
class MyClass : IC
{
public void MethodA()
{
Console.WriteLine("MethodA");
}
public void MethodB()
{
Console.WriteLine("MethodB");
}
public void MethodC()
{
Console.WriteLine("MethodC");
}
}
class SonClass:MyClass
{
//隔代继承的类,不需要实现父类的接口
}
如果使用了错误的写法,会有这样的报错:
在往下一层的子类(SonClass)则不受父类的接口影响。
》》结论:
- C#中接口可以多继承,接口之间可以相互继承和多继承。
- 一个类可以同时继承一个类和多个接口,但是接口不能继承类。
- 接口继承接口:子接口不用实现父接口的方法;
- 类直接继承接口:此类要实现这个接口以及溯源所有接口的方法;
- 类继承于带接口的类:子类实现的方法不受父类接口的影响;
特殊操作:如果类没有实现所有需要实现的接口中的所有方法,那么该类就必须声明为抽象类,需要声明该方法,但是自己不实现。由于是抽象类,所以子类必须实现此接口。
抽象类的规矩:(待编辑...)