【访问修饰符】 interface 接口名{};
1、接口完全是定义了一些约定,用来被实现的,所有成员默认是public,不能使用访问修饰符;
2、接口只有方法、属性、索引器或事件的声明,没有实现体;而且不能有字段;
3、可以弥补类的【单一继承】性;
4、实现接口的子类必须实现接口的所有成员,与抽象类相比,不能使用override重写关键字;
5、接口与接口直接可以继承,并且可以多继承;
public interface IRunable
{
void Run();
}
public class Dog:IRunable
{
public void Run()
{
throw new NotImplementedException();
}
}
5、显示实现接口成员,调用此实现的接口成员时必须通过接口类型的变量来调用,通过实现类变量的调用不能通过编译
public class Dog:IRunable
{
void IRunable.Run()
{
Console.WriteLine("run");
}
}
//调用
IRunable ondog = new Dog();
ondog.Run();//编译正确
Dog ondog = new Dog();
ondog.Run();//编译错误