我们都知道面向对象语言的三大特征是:封装、继承、多态。其中的多态就是靠接口实现的。接口在面向对象中是一个非常重要的概念。接口可以理解成我们日常所准守的管理规定或是国家的法律法规。一个公司要想便于管理就必须有管理规定来管理各种行为,这些行为准则就是接口在现实生活中的实际应用。我们到一个公司以后,公司怎么规定,我们就怎么做事。
接口就是统一的行为规定,派生类就是按照接口规定的要求来具体做事的(后续文章会讲到)。
本文最后有项目代码,有需要可自行下载
下面我们就学习一下C#中接口的用法,还是老方法,要想会使用就必须想会语法,接口定义的关键字是:Interface,所以我们先来看看接口的语法定义:
interface 接口名
{
//接口成员
void 方法名();
}
接口里可以定义属性、方法和事件。
例如:
interface IWork
{
//上班
void StartWork();
//下班
void OffWork();
}
以上代码定义了接口 IWork。通常接口以 I 字母开头,这个接口写了两个方法StartWork()和OffWork(),没有参数和返回值,当然我们可以按照需求设置参数和返回值。
注意:该方法并没有具体的实现
接口实现
接下来我们来实现上面定义的接口,我们在定义个类:Company(公司)的类
//我们使用冒号(:)来继承接口,并实现接口定义的两个方法StartWork,OffWork
pulice class Company:IWord
{
static void Main()
{
Company company = new Company();
company.StartWork();
company.OffWork();
}
//实现接口里定义的StartWork方法
public void StartWork()
{
Console.WriteLine("8:00了,现在开始工作了!");
}
//实现接口里定义的OffWork方法
public void OffWork()
{
Console.WriteLine("5:30了,工作一天,您辛苦了,现在下班了!");
}
}
输出结果
8:00了,现在开始工作了!
5:30了,工作一天,您辛苦了,现在下班了!
接口继承
在日常生活中会存在多种情况下的规定,这也就是说程序里也可以定义多个接口,并且接口是可以继承接口的
//个人需求接口
interface INeed:IWork
{
//吃饭
void Eat();
//睡觉
void Sleep();
}
接下来我们来实现INeed接口,我们还用公司类(Company)
//我们使用冒号(:)来继承接口,并实现接口定义的两个方法StartWork,OffWork
pulice class Company:INedd
{
static void Main()
{
Company company = new Company();
company.StartWork();
company.OffWork();
company.Eat();
company.Sleep();
}
//实现接口里定义的StartWork方法
public void StartWork()
{
Console.WriteLine("8:00了,现在开始工作了!");
}
//实现接口里定义的OffWork方法
public void OffWork()
{
Console.WriteLine("5:30了,工作一天,您辛苦了,现在下班了!");
}
//实现个人需求接口中的方法
public void Eat()
{
Console.WriteLine("下班了可以去掐饭了,太好了!");
}
//实现个人需求接口中的方法
public void Sleep()
{
Console.WriteLine("有点困了,睡会吧!");
}
}
从上面实现的过程来看,一个接口继承了另一个接口后,那么继承最终接口的类或结构就必须实现所有接口中的成员方法。
输出结果
8:00了,现在开始工作了!
5:30了,工作一天,您辛苦了,现在下班了!
下班了可以去掐饭了,太好了!
有点困了,睡会吧!