C#接口归纳总结实例详解

2019-12-30 17:16:03于丽


interface IProgram
 {
  void Fun();
 }
 class AProgram : IProgram
 {
  publicvirtualvoid AFun()
  {
   Console.WriteLine("I am virtual AFun.");
  }
  void IProgram.Fun()
  {
   AFun();
  }
 }
 class Program:AProgram
 {
  publicnewvoid AFun()
  {
   Console.WriteLine("I am new AFun.");
  }
  staticvoid Main(string[] args)
  {
   Program pro =new Program();
   ((IProgram)pro).Fun();
   pro.AFun();
   Console.Read();
  }
 }

结果为:I am virtual AFun.

I am new AFun.

由于前面已经讲过了,这里不在对此进行分析,由此我们可知使用New关键字是对其进行隐藏,当对接口实现的方法里调用的是虚方法时,和类的执行过程是一样的。

接口和抽象类的区别。

接口用于规范,抽象类用于共性。

接口中只能声明方法,属性,事件,索引器。而抽象类中可以有方法的实现,也可以定义非静态的类变量。

抽象类是类,所以只能被单继承,但是接口却可以一次实现多个。

抽象类可以提供某些方法的部分实现,接口不可以。

抽象类的实例是它的子类给出的。接口的实例是实现接口的类给出的。

在抽象类中加入一个方法,那么它的子类就同时有了这个方法。而在接口中加入新的方法,那么实现它的类就要重新编写(这就是为什么说接口是一个类的规范了)。

接口成员被定义为公共的,但抽象类的成员也可以是私有的、受保护的、内部的或受保护的内部成员(其中受保护的内部成员只能在应用程序的代码或派生类中访问)。

此外接口不能包含字段、构造函数、析构函数、静态成员或常量。

C#中的接口和类有什么异同。

异:

不能直接实例化接口。

接口不包含方法的实现。

接口可以实现多继承,而类只能是单继承。

类定义可在不同的源文件之间进行拆分。

同:

接口、类和结构可从多个接口继承。

接口类似于抽象基类:继承接口的任何非抽象类型都必须实现接口的所有成员。

接口可以包含事件、索引器、方法和属性。

一个类可以实现多个接口。

希望本篇文章对您有所帮助


注:相关教程知识阅读请移步到c#教程频道。