++++接口: 接口是一组包含了类或结构能够实现的功能的定义。数据库
++++以上例子咱们能够定义接口IFly和ISpeak,某个类实现了这两个接口,则该类便具备了飞和说话的功能。 没实现接口则不具有对应的功能。编程
++++因为C#只支持单继承,因此接口支持多实现的特性能够在必定程度上弥补该不足。设计模式
++++咱们能够经过interface关键字定义接口:网络
interface IFly{ide
void Fly();学习
}动画
interface ISpeak{spa
void Speak();.net
}设计
++接口的特性
++++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(){
Console.WriteLine(“鹦鹉会说话”);
}
public void Fly(){
Console.WriteLine(“鹦鹉会飞”);
}
//实现了接口必须实现接口当中的全部方法。
}
++++注意: 类实现接口就必须实现接口当中定义的全部方法,除非该类是抽象类。
++接口间的继承。
++++接口间的继承: 接口能够像类同样继承,而且接口支持多继承。 当接口A继承了接口B以后便拥有了接口B当中声明的方法。 某个类实现了接口A则必须实现接口A与接口B当中的全部方法。
++++与类继承的差异: 派生类继承了基类的方法的声明与实现,而派生接口只继承了父接口的成员方法说明。
++接口与抽象类
++++接口与抽象类很是类似,它定义了一些未实现的属性和方法。 全部继承它的类都继承这些成员,在这个角度上,能够把接口理解为一个类的模板。接口最终的目的是起到统一的做用。
++++相同点:
-- 1、二者都不能被实例化。
-- 2、二者都包含了由其余类或结构继承或实现的抽象成员。
++++不一样点:
-- 1、抽象类当中除了拥有抽象成员外还能够拥有非抽象成员;而接口中全部的成员都是抽象的。
-- 2、抽象成员可使用修饰符修饰,接口当中接口成员访问级别是默认不可修改的,而且默认是public。
-- 3、接口当中不能够包含构造方法,析构方法,静态成员以及常量。
-- 4、C#类只支持单继承,接口支持多继承。
#立钻哥哥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知识点0001:http://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--_--