接口

来源:互联网 发布:redis 数据有效期 编辑:程序博客网 时间:2024/06/10 20:10

接口用interface关键字修饰,C#中一般定义接口名称前面都以“I”开头,比如上面的IShape

声明接口就好像声明一个类而且只有成员方法,没有成员变量,成员方法没有实现部分。

上面右边的接口定义错误如下:1、public string name是成员变量,接口中不能有 

2、Draw(){······}有实现部分,接口中的所有成员方法不能有实现部分,而且接口还必须要有成员方法

3、不能有访问关键字修饰public,接口中默认都是public,但是自己不能写出来,要不然就是错误的

 

接口是用来被类实现的,被类实现的时候,接口中有什么成员方法,那么类就必须都去实现,简单的说就是接口有的

那么类中一定也要有。

上面的例子有点类似于子类与父类之间的关系,其实接口和实现类之间就是这样一种关系。

 

 

二、接口之间可以相互继承,并且可以多个继承

子接口的方法为:父接口中的成员方法+自身定义的成员方法,上面的Method1  和Method2就是两个自定义的两个方法,另外还有从

两个父接口中继承来的方法。

2、类中可以实现多个接口

那么类中必须实现继承来的所有接口中的方法。

 

三、接口的作用

有人觉得定义接口多此一举然后又麻烦,但是实际上接口有很多的作用

对外提供的服务,指的就是接口中的方法!定义的协定其实就是使用者要求某种服务,那么就定义了某种接口来提供这个服务,两者之间约定了一个协议

接口确实很像没有成员变量的抽象类,但是语义上是讲不通的。

C#不提供类与类之间的多重继承关系,类只能继承某一个类,但是类却可以实现多个接口,这样就解决了多重继承的问题。