乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      C#抽象類

       細(xì)想生活 2015-01-19

      abstract修飾符可以和類、方法、屬性、索引器及事件一起使用,在類聲明中使用abstract修飾符以表明這個(gè)類只能是其他類的基類。

      抽象類的特性

      (1)抽象類不能被實(shí)例化

      (2)抽象類可以包含抽象方法和抽象訪問(wèn)器

      (3)不能用sealed修飾符修改抽象類,因?yàn)槌橄箢惐旧砭褪怯脕?lái)給其他類繼承的

      (4)抽象類的非抽象子類必須實(shí)現(xiàn)其繼承的所有抽象方法和抽象訪問(wèn)器

      抽象方法

      (1)抽象方法是隱式的虛方法

      (2)抽象方法只允許聲明在抽象類中

      (3)抽象方法不能提供實(shí)際的實(shí)現(xiàn),所以沒有方法體;抽象方法的實(shí)現(xiàn)是在非抽象的派生類中以override重寫實(shí)現(xiàn)的

      (4)抽象方法聲明中不可以使用static或者virtual修飾符

      (5)abstract關(guān)鍵字不能修飾靜態(tài)方法或靜態(tài)屬性

      抽象類的構(gòu)造函數(shù)

      (1)不要再抽象類中定義public或protected internal訪問(wèn)權(quán)限的構(gòu)造函數(shù)

      (2)應(yīng)在抽象類中定義protected或private訪問(wèn)權(quán)限的構(gòu)造函數(shù)

      (3)如果在抽象類中定義一個(gè)protected構(gòu)造函數(shù),則在實(shí)例化派生類時(shí),基類可以執(zhí)行初始化任務(wù)

      抽象方法和虛方法的區(qū)別

      虛方法有實(shí)現(xiàn)部分,并且派生類對(duì)其重寫是可選的;抽象方法沒有實(shí)現(xiàn)部分,并且強(qiáng)制非抽象派生類對(duì)其重寫

       

      重寫虛方法例子中的代碼,改為抽象的方式實(shí)現(xiàn)

      復(fù)制代碼
      using System;
      using System.Collections;
      
      //抽象類
      public abstract class Animal
      {
          protected string face;
          //聲明為protected的構(gòu)造函數(shù),在實(shí)例化派生類時(shí),基類可以執(zhí)行初始化工作
          protected Animal() { this.face = "^_^"; /*抽象類構(gòu)造函數(shù)初始化的例子*/}
          public abstract void eat();
          public abstract string Face
          {
              get;
          }
      }
      
      public class dog : Animal
      {
          //重寫基類中的抽象訪問(wèn)器Face
          public override string Face
          {
              get
              {
                  return face;
              }
          }
          //重寫基類中的抽象方法eat
          public override void eat()
          {
              Console.WriteLine("狗吃骨頭 " + Face);
          }
      }
      
      public class cat : Animal
      {
          public override string Face
          {
              get
              {
                  return face;
              }
          }
      
          public override void eat()
          {
              Console.WriteLine("貓吃魚 " + Face);
          }
      }
      
      public class panda : Animal
      {
          public override string Face
          {
              get
              {
                  return face;
              }
          }
      
          public override void eat()
          {
              Console.WriteLine("熊貓吃竹子 " + Face);
          }
      }
      
      public class MainFun
      {
          static void Main()
          {
              Animal[] anim = new Animal[3];
              anim[0] = new dog();
              anim[1] = new cat();
              anim[2] = new panda();
              anim[0].eat();
              anim[1].eat();
              anim[2].eat();
              Console.ReadKey();
          }
      }
      復(fù)制代碼

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多