abstract class and interface

抽象类和接口的区别:

相同点:抽象类和接口都是引用类型,并且都不能进行实例化

异同点:

1、抽象类主要描述的是类型的所属关系,而接口主要描述的是类型的行为规范或行为合同,即内部包含的方法可以做什么等等。

2、抽象类只能是单继承,而一个类可以一次实现多个接口的。

3、抽象类和派生类之间是 IS-A的关系,而接口和实现接口的类型之间是CAN-DO的关系。

---------------------

另外针对接口多说几句:

接口一般在C#声明中是要加PUBLIC访问控制符的,默认为保护,在后期继承类中使用可能会出现问题,

而接口里的成员则可以忽略访问控制符。

另外接口类可以定义属性 如:

 1  public  interface AnonymousInterface
 2 {
 3    // 属性
 4      int Num
 5     { getset;
 6      }
 7    // 索引器
 8      int  this[ int index]{ get; set;}
 9    // 事件
10      event EventHandler Click;
11  // 此处事件本质不是成员,是两个方法。
12  // 但是接口中不能有构造器,不能包含字段,静态字段,静态方法,
13  }

 

 

你可能感兴趣的:(abstract class)