中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

繼上一篇代碼向上轉型實現多態

發布時間:2020-06-28 12:15:27 來源:網絡 閱讀:394 作者:Wonder_1989 欄目:編程語言
static class Program
 {
     /// <summary>
     /// 應用程序的主入口點。
     /// </summary>
     [STAThread]
     static void Main()
     {
         OptertorAdd op = new OptertorAdd();
         op.GetResult(1, 2);
     }
 }

 /// <summary>
 /// 父類 Created:ChenHu  date:2013326
 /// </summary>
 public class Opreator
 {
     //不想暴漏在外的私有變量可以用屬性封裝起來
     private double _numA;
     private double _numB;

     public double NumA
     {
         get { return _numA; }
         set { _numA = value; }
     }

     public double NumB
     {
         get { return _numB; }
         set { _numB = value; }
     }

     public virtual double GetResult(int a, int b)
     {
         double result = 0;
         //------------------------------------------
         //TODO:可以處理需要影藏的邏輯,這也是new或則說虛方法隱藏的邏輯的一種手段,隱藏的邏輯可以是員工的薪資計算等保密操作
         //------------------------------------------
         result = _numA + _numB;
         return result;
     }
 }

 /// <summary>
 /// 派生類  Created:ChenHu  date:2013326
 /// </summary>
 class OptertorAdd : Opreator
 {
     public override double GetResult(int a, int b)
     {
         //這里base的邏輯可以放在自己邏輯之前也可以放在自己邏輯的后面
         //這里的位置其實很有講究哦,邏輯不對可能會引起報錯。
         //如把base邏輯放在自己邏輯之前,在父類中 _numA + _numB=0;因為你還沒賦值
         base.GetResult(a, b);
         NumA = a;
         NumB = b;
         double result = 0;
         result = NumA + NumB;
         //父類邏輯在此位置  _numA + _numB=3;
         //base.GetResult(a, b); 
         return result;

     }
 }


 /// <summary>
 ///首先創建一個工廠,這里我們通過向上轉型實現多態
 ///這里我們試用靜態字段的原因就是:
 ///這個類可能調用的次數很大,我們最好讓其閑在內存加載好
 /// </summary>
 /// <remarks>
 /// 可以這樣理解多態:一個賣豬肉的爹生了好幾個兒子(兒子都具有爹的基因此為繼承),
 /// 每個兒子的工作都不一樣,有賣西瓜的賣土豆的,這個時候,
 /// 如果爹想吃西瓜了就會找到賣西瓜的兒子要,如果想吃土豆也是一樣的。如果想吃豬肉,
 /// 但是沒有賣肉的兒子怎么辦呢? 呵呵 生一個賣豬肉的兒子就行了,雖然有點夸張,但是這是多態的本質。
 /// </remarks>
 public static class OptetaionFactory
 {
     /// <summary>
     /// Frank 2013327
     /// </summary>
     /// <param name="oper">計算符號,根據不同的符號返回不同的計算類實體</param>
     /// <returns>計算類</returns>
     public static Opreator OptertCreate(String oper)
     {
         Opreator opretaor = null;
         switch (oper)
         {
             case "+":
                 //向上轉型:子類->父類
                 opretaor = new OptertorAdd();
                 break;
                 //TODO:這里可以根據需要然后從父類派生出更多的子類實例:這就是多態了
         }
         return opretaor;
     }
 }
向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

金阳县| 平江县| 安宁市| 上栗县| 九龙县| 崇阳县| 顺昌县| 治多县| 长葛市| 扎囊县| 安阳县| 岳普湖县| 南丰县| 囊谦县| 祁门县| 岳池县| 繁峙县| 梅河口市| 剑川县| 报价| 伊金霍洛旗| 双鸭山市| 昆明市| 永宁县| 独山县| 肃宁县| 阳泉市| 蚌埠市| 城市| 商河县| 太和县| 磐安县| 吴桥县| 陆河县| 新乡县| 兴和县| 金沙县| 呼和浩特市| 红河县| 武强县| 舞阳县|