抽象

抽象类通常表示一个抽象的概念,提供一个继承的出发点。当设计抽下类时候,尽可能的拥有更多的相同代码,更少的数据。

  1. 抽象类、方法用abstract关键字修饰;
  2. 抽象成员不能是private。
  3. 抽象类中可以拥有普通类所有的成员。
  4. 抽象方法中,不能有方法体。
  5. 抽象类中可以有非抽象方法,但是只要有抽象方法存在,该类就必须声明为抽象类。
  6. 抽象方法只能声明在抽下类中。
  7. 抽象类不能被实例化。
  8. 抽象类被继承后,子类必须实现父类所有的抽象成员。

 


 

 1 /// <summary>
 2 /// 抽象类
 3 /// </summary>
 4 internal abstract class MyClass
 5 {
 6     protected abstract void FunctionA();
 7 
 8     public void FunctionB()
 9     {
10 
11     }
12 
13 }
14 
15 /// <summary>
16 /// 子类
17 /// </summary>
18 class SubClass:MyClass
19 {
20 
21     protected override void FunctionA()
22     {
23         throw new NotImplementedException();
24     }
25 }
View Code

 

 

接口

接口是把一组公共方法和属性组合起来,以封装特定功能的一个集合,一旦一个类实现了该接口,就必须实现接口给中所有的成员。

  1. 声明接口用interface修饰。
  2. 接口不能声明构造函数和字段
  3. 接口中的所有成员均不能有修饰符,默认是public
  4. 接口中不能用static、virtual修饰。
  5. 类实现了接口,该类或者该类的子类必须实现所有接口中成员。 
  6. 一个类可以实现多个接口。