C#学习笔记系列
第一章 【C#学习笔记】【StackTrace】
第二章 【C#学习笔记】【Attribute】
第三章 【C#学习笔记】【Interface】
文章目录
前言
在C#的编程中,类是我们每天都会接触到的,但是对于初学者来说,接口就比较陌生了,也许入门学习时有学过,但是经过工作实践,部分新人就会发现,基本不会去用到接口,但是看大神源码,又是处处都有影踪,那么接口到底是什么呢?接下来学习接口(Interface)的概念,接口是什么,怎么使用接口,重点是为什么要使用接口。
一、Interface介绍
- 接口定义了所有类继承接口时应遵循的语法合同。接口定义了语法合同“是什么”部分,派生类定义了语法合同“怎么做”部分。
- 接口定义了属性、方法、事件、索引器等,这些都是接口的成员。接口只包含了成员的声明。成员的定义是派生类的责任。接口提供了派生类应遵循的标准结构。
- 接口使得实现接口的类或结构在形式上保持一致。
- 接口是一个引用类型,通过接口可以实现多重继承。
- 接口中只能声明“抽象”成员,所以不能直接对接口进行实例化,但允许派生出具体的,具有实际功能的类。
- 接口名称一般习惯用大写字母“I”作为开头(不是必须的,但是建议统一这样做增强可维护性)。
- 接口中成员的访问权限默认为public,所以我们在定义接口时不用再为接口成员指定任何访问权限修饰符,否则编译器会报错。
- 接口类一旦被实现(被一个类继承),派生类就必须实现接口中的所有成员,除非派生类本身也是抽象类。
- 接口本身并不实现任何功能,它只是和声明实现该接口的对象订立一个必须实现哪些行为的契约。
- 类只能继承一个基类,但可以继承多个接口。
二、定义接口
2.1. 声明接口
接口使用Interface关键字声明,它与类的声明类似。接口声明默认是public的,也可以显式地声明为public或internal(不能是其他),接口内的成员默认是public,不能显式地添加修饰符,通常接口命令以“I”字母开头:
public interface IMyInterface
{
void MethodToImplement();
}
2.2. 实现接口
2.2.1. 隐式实现
就是对其中的方法等进行重写
public interface IMyInterface
{
void MethodToImplement();
}
public class InterfaceImplementer : IMyInterface
{
public void MethodToImplement()