抽象类和抽象方法。 - 图1抽象类和抽象方法。 - 图2abstract  class  ShapesClass
    抽象类和抽象方法。 - 图3        {
    抽象类和抽象方法。 - 图4                abstract  public  int  Area();
    抽象类和抽象方法。 - 图5        }
    抽象类和抽象方法。 - 图6        class  Square  :  ShapesClass
    抽象类和抽象方法。 - 图7        {
    抽象类和抽象方法。 - 图8                int  x,  y;
    抽象类和抽象方法。 - 图9                //  Not  providing  an  Area  method  results
    抽象类和抽象方法。 - 图10                //  in  a  compile-time  error.
    抽象类和抽象方法。 - 图11                public  override  int  Area()
    抽象类和抽象方法。 - 图12                {
    抽象类和抽象方法。 - 图13                        return  x  *  y;
    抽象类和抽象方法。 - 图14                }
    抽象类和抽象方法。 - 图15        }抽象类和抽象方法。 - 图16

    例如,一个包含非抽象方法的抽象类:
    抽象类和抽象方法。 - 图17抽象类和抽象方法。 - 图18
    抽象类和抽象方法。 - 图19        abstract  class  MyAbs
    抽象类和抽象方法。 - 图20        {
    抽象类和抽象方法。 - 图21                public  void  NonAbMethod()
    抽象类和抽象方法。 - 图22                {
    抽象类和抽象方法。 - 图23                        Console.WriteLine(“Non-Abstract  Method”);
    抽象类和抽象方法。 - 图24                }
    抽象类和抽象方法。 - 图25        }
    抽象类和抽象方法。 - 图26        class  MyClass  :  MyAbs
    抽象类和抽象方法。 - 图27        {
    抽象类和抽象方法。 - 图28        }
    抽象类和抽象方法。 - 图29        class  MyClient
    抽象类和抽象方法。 - 图30        {
    抽象类和抽象方法。 - 图31                public  static  void  Main()
    抽象类和抽象方法。 - 图32                {
    抽象类和抽象方法。 - 图33                        //MyAbs  mb  =  new  MyAbs();//not  possible  to  create  an  instance
    抽象类和抽象方法。 - 图34                        MyClass  mc  =  new  MyClass();
    抽象类和抽象方法。 - 图35                        mc.NonAbMethod();  //  Displays  ’Non-Abstract  Method’
    抽象类和抽象方法。 - 图36                }
    抽象类和抽象方法。 - 图37        }抽象类和抽象方法。 - 图38

    抽象类和抽象方法。 - 图39抽象类和抽象方法。 - 图40  abstract  class  MyAbs
    抽象类和抽象方法。 - 图41        {
    抽象类和抽象方法。 - 图42                public  void  NonAbMethod()
    抽象类和抽象方法。 - 图43                {
    抽象类和抽象方法。 - 图44                        Console.WriteLine(“Non-Abstract  Method”);
    抽象类和抽象方法。 - 图45                }
    抽象类和抽象方法。 - 图46                public  abstract  void  AbMethod();  //  An  abstract  method
    抽象类和抽象方法。 - 图47        }
    抽象类和抽象方法。 - 图48        class  MyClass  :  MyAbs//must  implement  base  class  abstract  methods
    抽象类和抽象方法。 - 图49        {
    抽象类和抽象方法。 - 图50                public  override  void  AbMethod()
    抽象类和抽象方法。 - 图51                {
    抽象类和抽象方法。 - 图52                        Console.WriteLine(“Abstarct  method”);
    抽象类和抽象方法。 - 图53                }
    抽象类和抽象方法。 - 图54        }
    抽象类和抽象方法。 - 图55        class  MyClient
    抽象类和抽象方法。 - 图56        {
    抽象类和抽象方法。 - 图57                public  static  void  Main()
    抽象类和抽象方法。 - 图58                {
    抽象类和抽象方法。 - 图59                        MyClass  mc  =  new  MyClass();
    抽象类和抽象方法。 - 图60                        mc.NonAbMethod();
    抽象类和抽象方法。 - 图61                        mc.AbMethod();
    抽象类和抽象方法。 - 图62                }
    抽象类和抽象方法。 - 图63        }抽象类和抽象方法。 - 图64

    抽象类和抽象方法。 - 图65抽象类和抽象方法。 - 图66abstract  class  MyAbs
    抽象类和抽象方法。 - 图67        {
    抽象类和抽象方法。 - 图68                public  abstract  void  AbMethod1();
    抽象类和抽象方法。 - 图69                public  abstract  void  AbMethod2();
    抽象类和抽象方法。 - 图70        }
    抽象类和抽象方法。 - 图71        //not  necessary  to  implement  all  abstract  methods
    抽象类和抽象方法。 - 图72        //partial  implementation  is  possible
    抽象类和抽象方法。 - 图73        abstract  class  MyClass1  :  MyAbs
    抽象类和抽象方法。 - 图74        {
    抽象类和抽象方法。 - 图75                public  override  void  AbMethod1()
    抽象类和抽象方法。 - 图76                {
    抽象类和抽象方法。 - 图77                        Console.WriteLine(“Abstarct  method  #1”);
    抽象类和抽象方法。 - 图78                }
    抽象类和抽象方法。 - 图79        }
    抽象类和抽象方法。 - 图80        class  MyClass  :  MyClass1
    抽象类和抽象方法。 - 图81        {
    抽象类和抽象方法。 - 图82                public  override  void  AbMethod2()
    抽象类和抽象方法。 - 图83                {
    抽象类和抽象方法。 - 图84                        Console.WriteLine(“Abstarct  method  #2”);
    抽象类和抽象方法。 - 图85                }
    抽象类和抽象方法。 - 图86        }
    抽象类和抽象方法。 - 图87        class  MyClient
    抽象类和抽象方法。 - 图88        {
    抽象类和抽象方法。 - 图89                public  static  void  Main()
    抽象类和抽象方法。 - 图90                {
    抽象类和抽象方法。 - 图91                        MyClass  mc  =  new  MyClass();
    抽象类和抽象方法。 - 图92                        mc.AbMethod1();
    抽象类和抽象方法。 - 图93                        mc.AbMethod2();
    抽象类和抽象方法。 - 图94                }
    抽象类和抽象方法。 - 图95        }抽象类和抽象方法。 - 图96

    抽象类和抽象方法。 - 图97抽象类和抽象方法。 - 图98  class  MyClass1  //  Non-Abstract  class
    抽象类和抽象方法。 - 图99        {
    抽象类和抽象方法。 - 图100                public  void  Method1()
    抽象类和抽象方法。 - 图101                {
    抽象类和抽象方法。 - 图102                        Console.WriteLine(“Method  of  a  non-abstract  class”);
    抽象类和抽象方法。 - 图103                }
    抽象类和抽象方法。 - 图104        }
    抽象类和抽象方法。 - 图105        abstract  class  MyAbs  :  MyClass1  //  Inherits  from  an  non-abstract  class
    抽象类和抽象方法。 - 图106        {
    抽象类和抽象方法。 - 图107                public  abstract  void  AbMethod1();
    抽象类和抽象方法。 - 图108        }
    抽象类和抽象方法。 - 图109        class  MyClass  :  MyAbs//must  implement  base  class  abstract  methods
    抽象类和抽象方法。 - 图110        {
    抽象类和抽象方法。 - 图111                public  override  void  AbMethod1()
    抽象类和抽象方法。 - 图112                {
    抽象类和抽象方法。 - 图113                        Console.WriteLine(“Abstarct  method  #1  of  MyClass”);
    抽象类和抽象方法。 - 图114                }
    抽象类和抽象方法。 - 图115        }
    抽象类和抽象方法。 - 图116        class  MyClient
    抽象类和抽象方法。 - 图117        {
    抽象类和抽象方法。 - 图118                public  static  void  Main()
    抽象类和抽象方法。 - 图119                {
    抽象类和抽象方法。 - 图120                        MyClass  mc  =  new  MyClass();
    抽象类和抽象方法。 - 图121                        mc.Method1();
    抽象类和抽象方法。 - 图122                        mc.AbMethod1();
    抽象类和抽象方法。 - 图123                }
    抽象类和抽象方法。 - 图124        }抽象类和抽象方法。 - 图125

    抽象类和抽象方法。 - 图126抽象类和抽象方法。 - 图127        interface  IInterface
    抽象类和抽象方法。 - 图128        {
    抽象类和抽象方法。 - 图129                void  Method1();
    抽象类和抽象方法。 - 图130        }
    抽象类和抽象方法。 - 图131        abstract  class  MyAbs  :  IInterface
    抽象类和抽象方法。 - 图132        {
    抽象类和抽象方法。 - 图133                public  void  Method1()
    抽象类和抽象方法。 - 图134                {
    抽象类和抽象方法。 - 图135                        Console.WriteLine(“Method  implemented  from  the  IInterface”);
    抽象类和抽象方法。 - 图136                }
    抽象类和抽象方法。 - 图137        }
    抽象类和抽象方法。 - 图138        class  MyClass  :  MyAbs//must  implement  base  class  abstract  method
    抽象类和抽象方法。 - 图139        {
    抽象类和抽象方法。 - 图140        }
    抽象类和抽象方法。 - 图141        class  MyClient
    抽象类和抽象方法。 - 图142        {
    抽象类和抽象方法。 - 图143                public  static  void  Main()
    抽象类和抽象方法。 - 图144                {
    抽象类和抽象方法。 - 图145                MyClass  mc  =  new  MyClass();
    抽象类和抽象方法。 - 图146                mc.Method1();
    抽象类和抽象方法。 - 图147                }
    抽象类和抽象方法。 - 图148        }  
    抽象类和抽象方法。 - 图149抽象类和抽象方法。 - 图150  。 抽象类和抽象方法。 - 图151抽象类和抽象方法。 - 图152  abstract  class  MyAbs
    抽象类和抽象方法。 - 图153        {
    抽象类和抽象方法。 - 图154                public  abstract  void  AbMethod1();
    抽象类和抽象方法。 - 图155                public  abstract  void  AbMethod2();
    抽象类和抽象方法。 - 图156        }
    抽象类和抽象方法。 - 图157        class  MyClass1  :  MyAbs
    抽象类和抽象方法。 - 图158        {
    抽象类和抽象方法。 - 图159                public  override  void  AbMethod1()
    抽象类和抽象方法。 - 图160                {
    抽象类和抽象方法。 - 图161                        Console.WriteLine(“Abstarct  method  #1  of  MyClass1”);
    抽象类和抽象方法。 - 图162                }
    抽象类和抽象方法。 - 图163                public  override  void  AbMethod2()
    抽象类和抽象方法。 - 图164                {
    抽象类和抽象方法。 - 图165                        Console.WriteLine(“Abstarct  method  #2  of  MyClass1”);
    抽象类和抽象方法。 - 图166                }
    抽象类和抽象方法。 - 图167        }
    抽象类和抽象方法。 - 图168        class  MyClient
    抽象类和抽象方法。 - 图169        {
    抽象类和抽象方法。 - 图170                public  static  void  Main()
    抽象类和抽象方法。 - 图171                {
    抽象类和抽象方法。 - 图172                        MyAbs  ma1  =  new  MyClass1();//  Polymorphism
    抽象类和抽象方法。 - 图173                        ma1.AbMethod1();
    抽象类和抽象方法。 - 图174                        ma1.AbMethod2();
    抽象类和抽象方法。 - 图175                }
    抽象类和抽象方法。 - 图176        }抽象类和抽象方法。 - 图177

    抽象类和抽象方法。 - 图178抽象类和抽象方法。 - 图179interface  I  
    抽象类和抽象方法。 - 图180{
    抽象类和抽象方法。 - 图181        void  M();
    抽象类和抽象方法。 - 图182}
    抽象类和抽象方法。 - 图183abstract  class  C:  I  
    抽象类和抽象方法。 - 图184{
    抽象类和抽象方法。 - 图185        public  abstract  void  M();
    抽象类和抽象方法。 - 图186}
    抽象类和抽象方法。 - 图187抽象类和抽象方法。 - 图188
    抽象类具有以下特征:

    5.在方法和属性中使用abstract 关键字意味着包含它们的实现。