前言:对于接口这一概念,前几天我的一个学长用这个问题考了我一下,结果我没有答上来...恰巧今天就遇到了这个问题,那么我们今天就来了解一下这个概念吧。(注,今天我仅写有关软件类接口,硬件接口暂时不谈)
接口的定义:(软件类接口)是指对协定进行定义的引用类型。其他类型实现接口,以保证它们支持某些操作。接口指定必须由类提供的成员或实现它的其他接口。与类相似,接口可以包含方法、属性、索引器和事件作为成员。 --百度百科
从上面的定义我们知道两点:1.接口是一种规范;2.接口需要被实现;3.接口包含方法、属性、索引器和事件...其实前两点不难理解,以安卓手机的micro充电接口为例:这些充电器的接口规格必须统一,所以即使我的手机换了另一个micro规格充电头,也是可以完成充电的;但光有这些规格是不够的,光有规格那只是理论,所以我们需要用现实的一些材料来做出这个充电头才行。
接口的代码定义:需要建立Class,并且命名以大写的I开头
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace _4.接口
{
interface IFly
{
void IFly();
}
}
*注意:接口在定义时内部不需要包含接口的方法体。
接口的特点:
-完全抽象的一种约定
-接口就是用来实现的
接口的用法:以下为例子:(interface的定义在上一个代码块中)
using System;
namespace _4.接口
{
class Program
{
static void Main(string[] args)
{
IFly ifly = new Student();//student实例化了接口
ifly.IFly();
Console.ReadKey();
}
}
public class Person
{
private string _name;
public string Name
{
get { return _name; }
set { _name = value; }
}
private char _gender;
public char Gender
{
get { return _gender; }
set { _gender = value; }
}
private int _age;
public int Age
{
get { return _age; }
set { _age = value; }
}
}
public class Student:IFly//接口:实现而非继承
{
public void SayHello()
{
Console.WriteLine("我是学生");
}
public void IFly()//实现
{
Console.WriteLine("我会飞辣");
}
}
}
运行结果:
以上代码的思路:先通过Class建立一个接口,而后通过Student类实现这个方法。注意:此处语法类似继承但不叫做继承,而是有着专业的称呼:实现。
注意事项:
1.实现接口时,该类的方法体必须与方法同名
2.一个子类既继承了父类又实现了接口,那么这个父类的代码位置要在接口前面
加强巩固:接口与类的异同点:
不同点:
-不能直接实例化接口,但可以实例化接口实现的方法;
-接口不包含方法的实现;
-接口可以多实现,而类只能但继承;
-类定义可以在不同源文件之间拆分
相同点:
-接口、类都可以从多个接口继承;
-接口之间可以相互实现,类也可以i