C#接口
++++接口: 接口是一组包含了类或结构可以实现的功能的定义。
++++以上例子我们可以定义接口IFly和ISpeak,某个类实现了这两个接口,则该类便具有了飞和说话的功能。 没实现接口则不具备对应的功能。
++++由于C#只支持单继承,所以接口支持多实现的特性可以在一定程度上弥补该不足。
++++我们可以通过interface关键字定义接口:
interface IFly{
void Fly();
}
interface ISpeak{
void Speak();
}
++接口的特性
++++1、接口是一个引用类型,只包含了功能的定义,不包含功能的实现。
++++2、C#接口成员的访问级别是默认的(默认为public),不可以使用其他修饰词修饰。
++++3、C#接口成员不能有static,abstract,override,virtual修饰。
++++4、接口一旦被实现,就必须实现接口当中的所有成员,除非实现类本身是抽象类。
++++5、接口无法直接进行实例化,因为其成员必须通过由实现接口的任何类或结构来实现。
++++6、接口可以包含事件,索引器,方法和属性,但是不能包含字段。
++++7、类的继承只能单继承,接口的实现支持多实现。
++接口的使用
++++接口的定义: 接口的声明使用interface关键字。
++++格式:访问修饰符interface接口名{接口成员}
++++格式:
public interfaceI Flyable{
void Fly();
}
public interface ISpeak{
void Speak();
}
++++注意: 接口中方法的定义不允许加*问修饰符,默认修饰符为public。
++++接口的实现: 在实现接口的类或结构后使用冒号加上要实现的接口名。 实现多个接口时,多个接口之间使用逗号隔开。
例如:
class Parrot: IFlyable,ISpeak{
public void Speak(){
(“鹦鹉会说话”);
}
public void Fly(){
(“鹦鹉会飞”);
}
//实现了接口必须实现接口当中的所有方法。
}
++++注意: 类实现接口就必须实现接口当中定义的所有方法,除非该类是抽象类。
++接口间的继承。
++++接口间的继承: 接口可以像类一样继承,并且接口支持多继承。 当接口A继承了接口B之后便拥有了接口B当中声明的方法。 某个类实现了接口A则必须实现接口A与接口B当中的所有方法。
++++与类继承的差别: 派生类继承了基类的方法的声明与实现,而派生接口只继承了父接口的成员方法说明。
++接口与抽象类
++++接口与抽象类非常相似,它定义了一些未实现的属性和方法。 所有继承它的类都继承这些成员,在这个角度上,可以把接口理解为一个类的模板。接口最终的目的是起到统一的作用。
++++相同点:
-- 1、两者都不能被实例化。
-- 2、两者都包含了由其他类或结构继承或实现的抽象成员。
++++不同点:
-- 1、抽象类当中除了拥有抽象成员外还可以拥有非抽象成员;而接口中所有的成员都是抽象的。
-- 2、抽象成员可以使用修饰符修饰,接口当中接口成员访问级别是默认不可修改的,并且默认是public。
-- 3、接口当中不可以包含构造方法,析构方法,静态成员以及常量。
-- 4、C#类只支持单继承,接口支持多继承。
#立钻哥哥Unity 学习空间: /VRunSoftYanlz/
++立钻哥哥推荐的拓展学习链接(Link_Url):
++++立钻哥哥Unity 学习空间: /VRunSoftYanlz/
++++C#事件:/vrunsoftyanlz/article/details/78631267
++++C#委托:/vrunsoftyanlz/article/details/78631183
++++C#集合:/vrunsoftyanlz/article/details/78631175
++++C#泛型:/vrunsoftyanlz/article/details/78631141
++++C#接口:/vrunsoftyanlz/article/details/78631122
++++C#静态类:/vrunsoftyanlz/article/details/78630979
++++C#中类:/vrunsoftyanlz/article/details/78630945
++++C#数据类型:/vrunsoftyanlz/article/details/78630913
++++Unity3D默认的快捷键:/vrunsoftyanlz/article/details/78630838
++++游戏相关缩写:/vrunsoftyanlz/article/details/78630687
++++Unity引擎基础:/vrunsoftyanlz/article/details/78881685
++++Unity面向组件开发:/vrunsoftyanlz/article/details/78881752
++++Unity物理系统:/vrunsoftyanlz/article/details/78881879
++++Unity2D平台开发:/vrunsoftyanlz/article/details/78882034
++++UGUI基础:/vrunsoftyanlz/article/details/78884693
++++UGUI进阶:/vrunsoftyanlz/article/details/78884882
++++UGUI综合:/vrunsoftyanlz/article/details/78885013
++++Unity动画系统基础:/vrunsoftyanlz/article/details/78886068
++++Unity动画系统进阶:/vrunsoftyanlz/article/details/78886198
++++Navigation导航系统:/vrunsoftyanlz/article/details/78886281
++++Unity特效渲染:/vrunsoftyanlz/article/details/78886403
++++Unity数据存储:/vrunsoftyanlz/article/details/79251273
++++Unity中Sqlite数据库:/vrunsoftyanlz/article/details/79254162
++++WWW类和协程:/vrunsoftyanlz/article/details/79254559
++++Unity网络:/vrunsoftyanlz/article/details/79254902
++++设计模式简单整理:/vrunsoftyanlz/article/details/79839641
++++U3D小项目参考:/vrunsoftyanlz/article/details/80141811
++++UML类图:/vrunsoftyanlz/article/details/80289461
++++Unity知识点0001:/vrunsoftyanlz/article/details/80302012
++++U3D_Shader编程(第一篇:快速入门篇):/vrunsoftyanlz/article/details/80372071
++++U3D_Shader编程(第二篇:基础夯实篇):/vrunsoftyanlz/article/details/80372628
++++立钻哥哥Unity 学习空间: /VRunSoftYanlz/
--_--VRunSoft:lovezuanzuan--_--