接口是什么
接口,是只有方法,没有字段,也没有方法的实现,它貌似是一个规范方法的一个东西。我们可以这么理解,接口告诉了我们“有什么”,也就是方法的名称,具体“怎么做”,接口是不会去管的,所以接口只提供方法的名称,但它是不提供方法的实现,就好比电脑的USB插口,我们知道它可以插各种USB线,但我们不需要知道它具体是怎么运作的。在C#中因为不能像JAVA一样多重继承,所以接口就很好的补充了在这一点。
定义接口
如何定义一个接口,你可以在项目添加项除添加接口,也可以创建一个类后把Class改为interface即可,主义一般我们定义接口都是以大写i开头,例如 IComparable,Ianimal等等
实现接口
定义完接口以后我们就要实现他的接口成员,也就是它的方法,让我们来看一下如何实现
一、首先我们创建一个接口名为ILandBound(陆地动物),这个接口陆地动物继承它实现其方法就好了,海洋动物就不行了,原因请看下面代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace CsharpInterface
{
//接口不能含有字段例如 int a;
//接口成员不实现方法例如public void int number(){console.writeline("数数字")};
interface ILandBound
{
int NumberOfLegs();//接口中的方法,功能是返回它有多少只腿,如果是海洋生物实现这个方法就尴尬了
}
}
二、然后我们创建一个类去继承它,这个类是一个陆地动物:马(Horse)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace CsharpInterface
{
//这是一匹马
class Horse : ILandBound
{
//返回马有4条腿
int ILandBound.NumberOfLegs()
{
return 4;
}
}
}
接口的作用
我们实现了接口以后,那有什么作用呢,最后我们怎么去调用它呢?这时我们就要实例化一个接口对象然后引用继承它的类,只要这个类实现了它的方法就可以调用
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace CsharpInterface
{
class Program
{
static void Main(string[] args)
{
ILandBound land = new Horse();
land.NumberOfLegs();
}
}
}
这时你会不会觉得奇怪,其实我创建一个horse对象然后调用它的方法也可以啊,的确是可以,但是接口是为了规范化之余,其实它更重要的是模拟多重继承这个概念,因为我们有时候需要继承多个类,一个类往往不满足,所以接口因此而生。