C#接口

C#接口

++++接口: 接口是一组包含了类或结构能够实现的功能的定义。数据库

++++以上例子咱们能够定义接口IFlyISpeak,某个类实现了这两个接口,则该类便具备了飞和说话的功能。 没实现接口则不具有对应的功能。编程

++++因为C#只支持单继承,因此接口支持多实现的特性能够在必定程度上弥补该不足。设计模式

++++咱们能够经过interface关键字定义接口:网络

interface IFly{ide

    void Fly();学习

}动画

interface ISpeak{spa

    void Speak();.net

}设计


++接口的特性

++++1、接口是一个引用类型,只包含了功能的定义,不包含功能的实现。

++++2C#接口成员的访问级别是默认的(默认为public),不可使用其余修饰词修饰。

++++3C#接口成员不能有staticabstractoverridevirtual修饰。

++++4、接口一旦被实现,就必须实现接口当中的全部成员,除非实现类自己是抽象类。

++++5、接口没法直接进行实例化,由于其成员必须经过由实现接口的任何类或结构来实现。

++++6、接口能够包含事件,索引器,方法和属性,可是不能包含字段。

++++7、类的继承只能单继承,接口的实现支持多实现。


++接口的使用

++++接口的定义: 接口的声明使用interface关键字。

++++格式:访问修饰符interface接口名{接口成员}

++++格式:

public interfaceI Flyable{

    void Fly();

}

public interface ISpeak{

    void Speak();

}

++++注意: 接口中方法的定义不容许加上访问修饰符,默认修饰符为public

++++接口的实现: 在实现接口的类或结构后使用冒号加上要实现的接口名。 实现多个接口时,多个接口之间使用逗号隔开。

例如:

class Parrot: IFlyable,ISpeak{

   public void Speak(){

      Console.WriteLine(鹦鹉会说话);

}


public void Fly(){

   Console.WriteLine(鹦鹉会飞);

}

//实现了接口必须实现接口当中的全部方法。

}

++++注意: 类实现接口就必须实现接口当中定义的全部方法,除非该类是抽象类。


++接口间的继承

++++接口间的继承: 接口能够像类同样继承,而且接口支持多继承。 当接口A继承了接口B以后便拥有了接口B当中声明的方法。 某个类实现了接口A则必须实现接口A与接口B当中的全部方法。

++++与类继承的差异: 派生类继承了基类的方法的声明与实现,而派生接口只继承了父接口的成员方法说明。


++接口与抽象类

++++接口与抽象类很是类似,它定义了一些未实现的属性和方法。 全部继承它的类都继承这些成员,在这个角度上,能够把接口理解为一个类的模板。接口最终的目的是起到统一的做用。

++++相同点:

-- 1、二者都不能被实例化。

-- 2、二者都包含了由其余类或结构继承或实现的抽象成员。

++++不一样点:

-- 1、抽象类当中除了拥有抽象成员外还能够拥有非抽象成员;而接口中全部的成员都是抽象的。

-- 2、抽象成员可使用修饰符修饰,接口当中接口成员访问级别是默认不可修改的,而且默认是public

-- 3接口当中不能够包含构造方法,析构方法,静态成员以及常量

-- 4C#类只支持单继承接口支持多继承




#立钻哥哥Unity 学习空间: http://blog.csdn.net/VRunSoftYanlz/

++立钻哥哥推荐的拓展学习连接(Link_Url

++++立钻哥哥Unity 学习空间: http://blog.csdn.net/VRunSoftYanlz/

++++C#事件http://www.javashuo.com/article/p-zmwruvql-gm.html

++++C#委托http://www.javashuo.com/article/p-uozpymaf-gh.html

++++C#集合http://www.javashuo.com/article/p-sfqfdqsf-ex.html

++++C#泛型http://www.javashuo.com/article/p-xrttqngo-ee.html

++++C#接口http://www.javashuo.com/article/p-vhlfplgv-dm.html

++++C#静态类https://blog.csdn.net/vrunsoftyanlz/article/details/78630979

++++C#中System.String类http://www.javashuo.com/article/p-olslkfao-cq.html

++++C#数据类型http://www.javashuo.com/article/p-hmabbtmc-ba.html

++++Unity3D默认的快捷键http://www.javashuo.com/article/p-wuwcrclr-s.html

++++游戏相关缩写http://www.javashuo.com/article/p-mwacxwca-gm.html

++++Unity引擎基础http://www.javashuo.com/article/p-beommoeb-ka.html

++++Unity面向组件开发http://www.javashuo.com/article/p-eigmuvut-dt.html

++++Unity物理系统http://www.javashuo.com/article/p-nqvvciwv-kd.html

++++Unity2D平台开发http://www.javashuo.com/article/p-ycaagdtj-hs.html

++++UGUI基础http://www.javashuo.com/article/p-rukxwckw-mc.html

++++UGUI进阶http://www.javashuo.com/article/p-wcatruhq-gt.html

++++UGUI综合http://www.javashuo.com/article/p-dkccmqii-gg.html

++++Unity动画系统基础http://www.javashuo.com/article/p-mbrdouxy-dq.html

++++Unity动画系统进阶http://www.javashuo.com/article/p-aqaqpbkh-bp.html

++++Navigation导航系统http://www.javashuo.com/article/p-dswwllas-t.html

++++Unity特效渲染http://www.javashuo.com/article/p-ckojjyfj-bp.html

++++Unity数据存储http://www.javashuo.com/article/p-bvlzynso-m.html

++++Unity中Sqlite数据库http://www.javashuo.com/article/p-ejutsbxl-ca.html

++++WWW类和协程http://www.javashuo.com/article/p-dbwmhsav-cy.html

++++Unity网络http://www.javashuo.com/article/p-sqrlntgh-dw.html

++++设计模式简单整理http://www.javashuo.com/article/p-rngqugib-hg.html

++++U3D小项目参考https://blog.csdn.net/vrunsoftyanlz/article/details/80141811

++++UML类图http://www.javashuo.com/article/p-sxberuew-bm.html

++++Unity知识点0001http://www.javashuo.com/article/p-ryvdxxjr-ep.html

++++U3D_Shader编程(第一篇:快速入门篇)http://www.javashuo.com/article/p-kyppgrac-gz.html

++++U3D_Shader编程(第二篇:基础夯实篇)http://www.javashuo.com/article/p-qkyowtli-hv.html

++++立钻哥哥Unity 学习空间: http://blog.csdn.net/VRunSoftYanlz/


--_--VRunSoft:lovezuanzuan--_--