91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

發布時間: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

荥经县| 神农架林区| 鸡西市| 新津县| 宁南县| 府谷县| 辉南县| 哈尔滨市| 商都县| 宁夏| 邹平县| 安庆市| 清水河县| 灵川县| 紫云| 休宁县| 武穴市| 夏河县| 房产| 庄河市| 东明县| 郓城县| 无棣县| 武汉市| 峡江县| 曲阜市| 玉林市| 常宁市| 二连浩特市| 塔河县| 新闻| 阳西县| 和龙市| 通州区| 桂平市| 长岛县| 库尔勒市| 沅江市| 宁河县| 崇阳县| 甘谷县|