.Net C# 接口,了解只需3分钟
什么是接口?
当我们租房或者买房的时候,我们需要有租房或购房合同,合同内写明双方需要遵守的规则。
在代码中,如果双方协作实现一个功能,例如小明实现一个功能给小红调用。
如果没有提前沟通好,小红是不知道小明写了哪些方法和属性的。
所以在程序开发协作中,也需要一个合同,即语法合同,也就是接口。
在合同内声明好双方需要遵守的规则,然后小明按照规则实现,小红按照规则调用。
如何声明
我们可以在接口内声明方法、事件、属性。如下
interface ICar
{
string Name{get;set;}
void Start();
}
接口使用 interface
关键字声明,它与类的声明类似。接口声明默认是 public
的。
然后小明就可以按照这个接口实现:
public class BM : ICar
{
public string Name { get; set; } ="宝马";
public void Start()
{
Console.WriteLine(Name+"启动了!");
}
}
小红就可以这么调用:
class Program
{
static void Main(string[] args)
{
ICar car = new BM();
car.Start();
Console.ReadKey();
}
}
输出结果:
宝马启动了!
由此得出
接口包含非抽象类或结构必须实现的一组相关功能的定义
接口的优点
如果我们需要将宝马更换成马自达呢?
我们只需这样做,首先实现马自达,并让马自达继承ICar接口
public class MZD : ICar
{
public string Name { get; set; } = "马自达";
public void Start()
{
Console.WriteLine(Name + "启动了!");
}
}
然后小红这样调用
class Program
{
static void Main(string[] args)
{
ICar car = new MZD();
car.Start();
Console.ReadKey();
}
}
输出结果:
马自达启动了!
是不是改动特别小?如果不使用接口,我们进行替换的时候,就需要改动所有调用宝马对象的地方。更换成接口,我们可以很好地实现代码解耦。
后记
本人不是大佬,只是道路先行者,在落河后,向后来的人大喊一声,这里有坑,不要过来啊!
纵然如此,依旧有人重复着落河,重复着呐喊······
技术交流Q群:1012481075 群内有各种流行书籍资料
你的一分鼓励,我的十分动力,点赞免费,感恩回馈。喜欢就点赞评论吧,双击6666~