C# 接口(Interface)

简介: 接口定义了所有类继承接口时应遵循的语法合同。接口定义了语法合同 "是什么" 部分,派生类定义了语法合同 "怎么做" 部分。接口定义了属性、方法和事件,这些都是接口的成员。接口只包含了成员的声明。成员的定义是派生类的责任。接口提供了派生类应遵循的标准结构。接口使得实现接口的类或结构在形式上保持一致。抽象类在某种程度上与接口类似,但是,它们大多只是用在当只有少数方法由基类声明由派生类实现时。接口本身并不实现任何功能,它只是和声明实现该接口的对象订立一个必须实现哪些行为的契约。抽象类不能直接实例化,但允许派生出具体的,具有实际功能的类。

定义接口: MyInterface.cs
接口使用 interface 关键字声明,它与类的声明类似。接口声明默认是 public 的。下面是一个接口声明的实例:
image.png
以上代码定义了接口 IMyInterface。通常接口命令以 I 字母开头,这个接口只有一个方法 MethodToImplement(),没有参数和返回值,当然我们可以按照需求设置参数和返回值。

值得注意的是,该方法并没有具体的实现。

接下来我们来实现以上接口:InterfaceImplementer.cs
image.png
InterfaceImplementer 类实现了 IMyInterface 接口,接口的实现与类的继承语法格式类似:
image.png
继承接口后,我们需要实现接口的方法 MethodToImplement() , 方法名必须与接口定义的方法名一致。

接口继承: InterfaceInheritance.cs
以下实例定义了两个接口 IMyInterface 和 IParentInterface。

如果一个接口继承其他接口,那么实现类或结构就需要实现所有接口的成员。

以下实例 IMyInterface 继承了 IParentInterface 接口,因此接口实现类必须实现 MethodToImplement() 和 ParentInterfaceMethod() 方法:
image.png
实例输出结果为:
image.png

相关文章
|
5月前
|
达摩院 Linux API
阿里达摩院MindOpt求解器V1.1新增C#接口
阿里达摩院MindOpt求解器发布最新版本V1.1,增加了C#相关API和文档。优化求解器产品是求解优化问题的专业计算软件,可广泛各个行业。阿里达摩院从2019年投入自研MindOpt优化求解器,截止目前经历27个版本的迭代,取得了多项国内和国际第一的成绩。就在上个月,2023年12月,在工信部产业发展促进中心等单位主办的首届能源电子产业创新大赛上,MindOpt获得电力用国产求解器第一名。本文将为C#开发者讲述如何下载安装MindOpt和C#案例源代码。
186 3
阿里达摩院MindOpt求解器V1.1新增C#接口
|
5月前
|
IDE C# 开发工具
C#系列之接口介绍
C#系列之接口介绍
|
5月前
|
编译器 C# 开发者
C# 11.0中的新特性:覆盖默认接口方法
C# 11.0进一步增强了接口的灵活性,引入了覆盖默认接口方法的能力。这一新特性允许类在实现接口时,不仅可以提供接口中未实现的方法的具体实现,还可以覆盖接口中定义的默认方法实现。本文将详细介绍C# 11.0中接口默认方法覆盖的工作原理、使用场景及其对现有代码的影响,帮助开发者更好地理解和应用这一新功能。
|
1月前
|
C# 索引
C# 一分钟浅谈:接口与抽象类的区别及使用
【9月更文挑战第2天】本文详细对比了面向对象编程中接口与抽象类的概念及区别。接口定义了行为规范,强制实现类提供具体实现;抽象类则既能定义抽象方法也能提供具体实现。文章通过具体示例介绍了如何使用接口和抽象类,并探讨了其实现方式、继承限制及实例化差异。最后总结了选择接口或抽象类应基于具体设计需求。掌握这两者有助于编写高质量的面向对象程序。
62 5
|
2月前
|
API C# 数据库
SemanticKernel/C#:实现接口,接入本地嵌入模型
SemanticKernel/C#:实现接口,接入本地嵌入模型
61 1
|
2月前
|
C#
C# 面向对象编程(三)——接口/枚举类型/泛型
C# 面向对象编程(三)——接口/枚举类型/泛型
26 0
|
5月前
|
前端开发 API C#
C# 接口
C# 接口
40 1
|
5月前
|
C# 开发者 索引
C# 11.0中的所需成员:强化接口与抽象类的约束
【1月更文挑战第24天】C# 11.0引入了所需成员(Required members)的概念,这一新特性允许在接口和抽象类中定义必须被实现的成员,包括方法、属性、索引器和事件。通过所需成员,C# 强化了对接口实现和抽象类继承的约束,提高了代码的一致性和可维护性。本文将详细探讨C# 11.0中所需成员的工作原理、使用场景及其对现有编程模式的影响。
|
5月前
|
C# 开发者 索引
C# 11.0中的静态抽象成员:接口中的新变革
【1月更文挑战第25天】C# 11.0引入了接口中的静态抽象成员,这一新特性为接口设计带来了更大的灵活性。静态抽象成员允许在接口中定义静态方法和属性,并要求实现类提供具体的实现。本文将详细探讨C# 11.0中静态抽象成员的工作原理、优势及其对现有编程模式的影响,旨在帮助读者更好地理解和应用这一新特性。
|
5月前
|
开发框架 前端开发 .NET
C#编程与Web开发
【4月更文挑战第21天】本文探讨了C#在Web开发中的应用,包括使用ASP.NET框架、MVC模式、Web API和Entity Framework。C#作为.NET框架的主要语言,结合这些工具,能创建动态、高效的Web应用。实际案例涉及企业级应用、电子商务和社交媒体平台。尽管面临竞争和挑战,但C#在Web开发领域的前景将持续拓展。
168 3