快速了解C#接口(Interface)

接口定义了所有类继承接口时应遵循的语法合同。接口定义了语法合同 “是什么” 部分,派生类定义了语法合同 “怎么做” 部分。
接口定义了属性、方法和事件,这些都是接口的成员。接口只包含了成员的声明。成员的定义是派生类的责任。接口提供了派生类应遵循的标准结构。
接口使得实现接口的类或结构在形式上保持一致。
抽象类在某种程度上与接口类似,但是,它们大多只是用在当只有少数方法由基类声明由派生类实现时。 — Runoob

说明

接口类似一个抽象类, 没有任何功能和业务逻辑. 主要是制作一个规范. 让继承的子类完成功能.

声明接口

接口的声明与类(class)相似, 关键词用的是 interface
接口中的方法没有功能, 功能是丢给继承的子类完成的

1
2
3
4
interface I我是接口
{
void 子类必须完成我这个功能();
}

那么我们来完成 I我是接口

1
2
3
4
5
6
7
class 测试 : I我是接口
{
public void 子类必须完成我这个功能()
{
Console.WriteLine("这盛世如你所愿!");
}
}

接口也可以继承

与类(class)继承一样的语法, 这是我学习时的代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
using System;

namespace _1101_接口
{
class Program
{
static void Main(string[] args)
{
魔改 test = new 魔改();
test.显示();
test.输出();
Console.ReadKey();
}
}


/*--- 接口 ---*/
interface I接口
{
void 显示();
}

interface I最终接口 : I接口
{
void 输出();
}


/*-- 这个类负责实现以上接口的业务逻辑 --*/
class 魔改 : I最终接口
{
public void 显示()
{
Console.WriteLine("显示()被执行了");
}
public void 输出()
{
Console.WriteLine("输出()被执行了");
}
}
}