【C#】关于接口

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wzh66888/article/details/81275469

关于接口

接口的特点:

接口的定义是指定一组函数成员而不实现成员的引用类型,其它类型和接口可以继承接口。定义还是很好理解的,但是没有反映特点,接口主要有以下特点:

(1)通过接口可以实现多重继承,C#接口的成员不能有public、protected、internal、private等修饰符。原因很简单,接口里面的方法都需要由外面接口实现去实现方法体,那么其修饰符必然是public。C#接口中的成员默认是public的,java中是可以加public的。

(2)接口成员不能有new、static、abstract、override、virtual修饰符。有一点要注意,当一个接口实现一个接口,这2个接口中有相同的方法时,可用new关键字隐藏父接口中的方法。

(3)接口中只包含成员的签名,接口没有构造函数,所有不能直接使用new对接口进行实例化。接口中只能包含方法、属性、事件和索引的组合。接口一旦被实现,实现类必须实现接口中的所有成员,除非实现类本身是抽象类。

(4)C#是单继承,接口是解决C#里面类可以同时继承多个基类的问题。

接口和类的区别:

1、接口类似于类,但接口的成员都没有执行方式,它只是方法、属性、事件和索引的组合而已,并且也只能包含这四种成员;类除了这四种成员之外还可以有别的成员(如字段)。

2、不能实例化一个接口,接口只包括成员的签名;而类可以实例化(abstract类除外)。

3、接口没有构造函数,类有构造函数

4、接口不能进行运算符的重载,类可以进行运算符重载

5、接口的成员没有任何修饰符,其成员总是公共的,而类的成员则可以有修饰符(如:虚拟或者静态)。

6、派生于接口的类必须实现接口中所有成员的执行方式,而从类派生则不然。

显示实现接口和隐式实现接口的区别

当类实现一个接口时,通常使用隐式接口实现;

当类实现多个接口时,并且接口中包含相同的方法签名,此时使用显式接口实现。

即使没有相同的方法签名,仍推荐显式接口,因为可以标识出那个方法属于哪个接口

隐式接口实现,类和接口都可访问接口中方法。显式接口实现,只能通过接口访问。

 

猜你喜欢

转载自blog.csdn.net/wzh66888/article/details/81275469