C# 中的接口如何工作?

c# 中的接口如何工作?

接口定义了将由类或结构实现的契约。它可以包含方法、属性、事件和索引器。接口与类类似,只不过它不保存任何数据,仅指定它可以执行的行为(或更准确地说,实现它的类可以执行的行为)。

类可以实现一个行为或更多接口。要实现接口成员,类应具有与接口成员具有相同方法定义的公共成员,即相同的名称和签名。

例如,IComparer 是在 System.Collections 命名空间中定义的接口它定义了比较两个对象的方法的契约。 Car类实现了IComparer接口

public interface IDriver{   void Drive();}public class Car : IDriver{   public string Name { get; set; }   public int Speed { get; set; }   public void Drive(){      Console.WriteLine($"{Name}: {Speed}");   }}

接口上的所有成员都是隐式抽象的,并且没有任何实现细节。所有接口成员都是公共的。不能将访问修饰符与接口成员一起使用。实现接口的类必须提供实现该接口的公共方法。

接口可以扩展其他接口,例如 –

public interface IPerformer { void Perform(); }public interface ISinger : IPerformer{   void Sing();}

接口允许您将来自多个源的行为包含在一个类中。由于 C# 不像 C++ 那样允许多重继承,因此接口是在 C# 中实现多重继承的一种方法。

接口的一个缺点是,当您使用接口公开 API 时,接口的灵活性不如类。当您更改接口的约定时,实现该接口的所有类都会中断,并且需要更新才能实现该接口。

示例

 实时演示

using System;class Program{   static void Main(){      var carOne = new Car { Name = "Honda", Speed = 100 };      var carTwo = new Car { Name = "Toyota", Speed = 70 };      carOne.Drive();      carTwo.Drive();   }}public interface IDriver{   void Drive();}public class Car : IDriver{   public string Name { get; set; }   public int Speed { get; set; }   public void Drive(){      Console.WriteLine($"{Name}: {Speed}");   }}

输出

Honda: 100Toyota: 70

以上就是C# 中的接口如何工作?的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1435052.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
C# 中的序列化和反序列化
上一篇 2025年12月17日 10:35:32
如何从 C# 中的 DateTime 对象中仅获取日期部分?
下一篇 2025年12月17日 10:35:55

相关推荐

发表回复

登录后才能评论
关注微信