C#中定义和实现接口
1 接口的定义:是指定一组函数成员而不实现成员的引用类型,其它类型和接口可以继承接口。
1.1 接口的声明和语法特点
接口的语法声明及接口的特点:
接口定义的语法形式如下。
interface 接口名称
{
接口成员;
}
(1)接口的名称通常以 “I” 开头再加上其他的单词构成。例如创建一个计算的接口,可以命名为 ICompute。
(2)接口的成员
接口中定义的成员必须满足以下要求。
1. 接口中的成员不允许使用 public、private、protected、 internal 访问修饰符。(接口不能使用访问修饰符)
2. 接口中的成员不允许使用 static、virtual、abstract、 sealed 修饰符。(接口不能使用任何修饰符)
3. 在接口中不能定义字段。
4. 接口定义可以定义零个或多个成员。接口的成员必须是 方法、属性、事件或索引器。
5. 在接口中定义的方法不能包含方法体。
6. 接口不能包含常数、字段、运算符、实例 构造函数、 析构函数或类型,也不能包含任何种类的静态成员。
7. 接口不支持运算符重载。
2 接口的实现
2.1 接口的实现逻辑:
接口的实现实际上和类之间的继承是一样的,也是重写了接口中的方法,让其有了具体的实现内容。
但需要注意的是,在类中实现一个接口时必须将接口中的所有成员都实现,否则该类必须声明为抽象类,并将接口中未实现的成员以抽象方式实现。
在 C# 语言中实现接口的具体语法形式如下。
calss 类名: 接口名
{
//类中的成员以及实现接口中的成员
}
以抽象方式实现接口中的成员是指将接口中未实现的成员定义为抽象成员,示例代码如下。
Interface IComput
{
}
2.2 接口的实现步骤
- 声明接口及接口成员,但不实现接口
代码如下
interface IComput
{
int Id {
get; set; }
String Name {
get; set; }
void Total();
void Avg();
}
- 定义列继承接口,并实现接口的成员
代码如下:
public class Test : IComput
{
public int Id {
get; set; }//隐式实现接口
public string Name {
get; set; }
public int English {
get; set; }
public double Programming {
get; set; }
public double Database {
get; set; }
//实现方法
public void Total()
{
//求总分
double sum = (English + Programming + Database);
Console.WriteLine("总分为" + sum);
}