接口与抽象类

在C#语言中,接口是使用interface关键字来声明的.用来声明接口的语法格式为:
[访问修饰符] Interface 接口名称
{

}
接口所具有属性包括以下特点为:
 ·接口类似于抽象类,继承接口的任何非抽象类型都必须实现接口的所有成员。
 ·接口不能包涵字段而且接口中的成员一定是公共的。
 ·接口类型不能直接实例化。
 ·接口具有方法名,但不包含方法的实现。
 ·类和结构可从多个接口继承,接口自身可从多个接口继承。

注意: 要实现一个接,必须要有相应的类.实现某个接口的任何类者将拥有该接口中的所有元素.因此,当需要在不相关的类中实现同样的功能时,就可以使用接口.

C#语言只允许有一个被继承的类,但是在接口中,可以通过接口实现多继承。


抽象类使用abstract关键字修饰,用于表示所修饰的类是不完整的,即类中的成员不一定都能实现。抽象类只能做基类。抽象类与非抽象类具有以下主要不同之处。
 ·抽象类不能被直接实例化,只能在扩充类中通过继承使用,对抽象类使用new运算符会产生编译错误。
 ·抽象类可以包含抽象成员,而非抽象类不能包含抽象成员。当从抽象类派生非抽象类时,这些非抽象类必须实   现所继承的所有抽象成员。

   抽象类均为虚拟方法,不需要加virtual关键字修饰.
  

原文地址:https://www.cnblogs.com/qiqiBoKe/p/2791587.html