接口和抽象类的区别

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

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

  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();
    }
原文地址:https://www.cnblogs.com/adder/p/3944278.html