[C#]抽像類別

  • 2077
  • 0
  • C#
  • 2012-02-22

[C#]抽像類別

老實說我一直到最近才知道怎麼解釋抽像類別這鬼東西,就是一個抽象的類別(這不是廢話嗎?) ,但是把抽像跟類別分開看的確是有辦法幫助理解

先解說抽像吧!如下圖

3802951_178c7d705ee4dec901a268ffdcb2897b  把我自己瘋狂的抽像後-------->變成人的抽像人

1389415875  把郭嘉瘋狂的抽像後-------->變成人的抽像人

 

抽象就是將具體的細節保留成含糊、曖昧或無定義的樣子(文字都看的懂但意思不好體會,看上圖比較快)

 

回到程式,物件導向也是如此,所以我們必須發揮更多的想像力來面對這硬磅磅的程式,

以上方人當例子如下:

   1:  // 先人給抽像出收入,性別,能力   
   2:  public abstract class AbstractHuman   
   3:  {   
   4:          public virtual string Income { get; set; }
   5:          public virtual string Gender { get; set; }
   6:          public string Ability(); 
   7:  }

 

再透過繼承的方式去建立各種類別的人,如下:

   1:  // 繼承的人的基本後,在把自己的特色給呈現出來   
   2:  public class Poorman : AbstractHuman   
   3:  {   
   4:          // 一個窮人該有的特色   
   5:          public Poorman()         
   6:          {   
   7:                  Income = "微薄的收入";   
   8:                  Gender = "男";   
   9:          }  
  10:   
  11:          public override string Ability()   
  12:          {  
  13:                  return "不怎麼樣的程式設計";  
  14:          }  
  15:  }  
  16:   
  17:  // 若是鋼鐵人.........我想不用我多介紹了  
  18:  public class Ironman : AbstractHuman  
  19:  {  
  20:          public Ironman()  
  21:          {  
  22:                  Income = "有錢到可以開後宮收入";  
  23:                  Gender = "男";  
  24:          } 
  25:   
  26:          public override string Ability() 
  27:          {  
  28:                  return "萬能的機械天才";  
  29:          }  
  30:  }

這個例子其實沒辦法很直覺得讓人感到抽像類別所能帶來的好處,

其主要目的只是想讓人更簡易的能了解抽像類別是什麼?要怎麼用而已。