面向对象之接口
【访问修饰符】 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();//编译错误