前言
“接口” 用于定义一种规范(标准),在多人合作的大型开发中,如果没有规范,代码就不能正确的配合。就像我们生活中使用的 USB 接口,就是一种标准,在 1994 年底由 Intel、Compaq、IBM、Microsoft 等多家公司联合提出,有了这个标准后,设备生产商生产的任何遵守该标准的设备,都能够接入 PC 机,到后来越来越多的地方采用这种标准,极大的方便了消费者选购产品,也提高了资源利用率,这就是 “规范” 的作用。
接口的作用:
1,制定规范,比如要求多个程序员小弟写不同的类,这些类中必须有相应的功能,就可以写一个接口让小弟继承,小弟的类继承接口之后,就必须完成所有的功能,否则编译不通过,即必须遵守制定的规范。
2,实现多继承。类的继承具有单根性,但是接口的继承则不限于此,就像一个孩子只可能有一个爸爸,但是可以有多种能力
接口的语法特点:
1,声明接口的关键字:interface ,接口命名:I + 功能概括 + able,比如 Ieatable
2,接口中的成员不允许添加访问修饰符,默认就是 public,而类中默认是 private
3,接口中不允许写函数的具体方法体,即 “只说不做”,只制定标准,不生产产品
4,接口中可以有属性,但只能是自动属性,因为自动属性本质上是方法,且不包含方法体
5,接口中不允许有字段,因为接口不可以存数据
6,综上,接口中只能有方法,而且是不带方法体的方法
7,类可以继承类和接口,但接口只能继承接口
写一个接口,如下所示,包含三个方法:
public interface Ieatable { string eat(string food); void age(); //public void fly(); // 1,接口中的成员不允许添加访问修饰符 //void Test() // 2,接口中不允许写具有方法体的函数 //{ // Console.Write("接口中的方法"); //} //string _name; // 3,接口中不允许有字段,因为接口不可以存数据 string Name //4,接口中可以有属性(此处为自动属性),本质上就是方法。 { get; set; } }
继承一个接口,如下图所示,我们会发现编译后报错:
这是因为我们继承了 Ieatbale 接口之后,没有实现接口里的全部方法,上面就是没有实现 age() 方法。
使用一个继承了接口的类
static void Main(string[] args) { Student s1 = new Student(); s1.eat("apple"); }
后记
综上所述,接口的使用和语法规范还是很好理解的,合理的使用接口,可以保证程序员与程序员之间,项目与项目之间,完美的衔接。
— good night!