首页 > 代码库 > 接口和抽象类的区别

接口和抽象类的区别

抽象类与接口很相似,但是思路不一样。接口是公开类的成员,而抽象类则是抽象类成员以要求子类继承并实现。

抽象类:抽象类是对共性的抽象

  1.   和普通的类不同,抽象类需要用abstract来修饰类。
  2.   如果一个类中含有抽象方法,那么这个类必须抽象处理(声明为抽象类,不需要实现)。
  3.   继承抽象类的子类必须重写父类的抽象方法。
  4.   抽象类不能被实例化。
  5.   使用抽象类可以实现多态。
  6.       可以包含抽象方法和非抽象方法。
  7.       成员可以使用static、abstract、override、virtual修饰符。

  定义抽象类,抽象方法:

abstract  class CashSuper{   public abstract double acceptCash(double money);} 

  使用抽象类抽象方法:            

class CashNormal : CashSuper{  public override double acceptCash(double money)   {     return money;   }}

接口:接口是对行为的抽象

  1.   实现接口的任何非抽象类型都必须实现接口的所有成员。
  2.   接口不能被实例化。
  3.   接口可以包含事件、索引器、方法和属性。
  4.   类和结构可继承多个接口。
  5.   接口自身可从多个接口继承。
  6.   方法只能是抽象方法。
  7.   所有成员都是public static final的,不能使用static、abstract、override、virtual修饰符。

示例:  

interface MyInterface     {               string ID        {            set;            get;        }        string Name         {            set;            get;        }        void ShowInfo();    }

 

接口和抽象类的区别