C#的接口
前言
今天学习C#的接口,虽然我还是不太明白接口的便利性,但先学着呗!/font>
一、什么是接口
定义:接口是一种约束形式,其中只包括成员定义,不包含成员实现的内容。
目的:接口的主要目的是为不相关的类提供通用的处理服务,由于C#中只允许树形结构中的单继承,即一个类只能继承一个父类,所以接口是让一个类具有两个以上基类的唯一方式。
声明:接口声明的方式与声明类的方式相似,但使用的关键字是interface,而不是 class。
接口只包含方法、属性、索引器和事件的签名。方法的实现是在实现接口的类中完成的。
(1)通过接口可以实现多重继承,C# 接口的成员不能有 public、protected、internal、private 等修饰符。原因很简单,接口里面的方法都需要由外面接口实现去实现方法体,那么其修饰符必然是 public。C# 接口中的成员默认是 public 的,java 中是可以加 public 的。
(2)接口成员不能有 new、static、abstract、override、virtual 修饰符。有一点要注意,当一个接口实现一个接口,这2个接口中有相同的方法时,可用 new 关键字隐藏父接口中的方法。
(3)接口中只包含成员的签名,接口没有构造函数,所以不能直接使用 new 对接口进行实例化。接口中只能包含方法、属性、事件和索引的组合。接口一旦被实现,实现类必须实现接口中的所有成员,除非实现类本身是抽象类。
4)C# 是单继承,接口是解决 C# 里面类可以同时继承多个基类的问题。
二、实例
ystem;
interface IParentInterface
{
void ParentInterfaceMethod();
}
class test : IParentInterface
{
static void Main()
{
test i1 = new test();
i1.ParentInterfaceMethod();
}
public void ParentInterfaceMethod()
{
Console.WriteLine("ParentInterfaceMethod run.");
Console.ReadLine();
}
}
结果
$ interface
ParentInterfaceMethod run.
接口使用 interface 关键字声明,通常接口命令以 I 字母开头。
如果一个接口继承其他接口,那么实现类或结构就需要实现所有接口的成员。
总结
今天被卡住在interface.cs(4,6): (与前一个错误相关的符号位置)很久,事实上解决方法很简单,就是给接口和其方法换了一个名字。