免费观看又色又爽又黄的小说免费_美女福利视频国产片_亚洲欧美精品_美国一级大黄大色毛片

C#中override重寫與new隱藏的區別是什么

這期內容當中小編將會給大家帶來有關C# 中override重寫與new隱藏的區別是什么,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

成都創新互聯是工信部頒發資質IDC服務器商,為用戶提供優質的四川雅安電信機房服務

C#比java多一個new隱藏的功能。C# override重寫相當于java中沒有關鍵字的方法重寫。所以java中方法是沒有隱藏功能的。

C# override重寫,是指對父類中的虛方法(標記virtual)或抽象方法(標記為abstract)進行重寫,實現新的功能,它必須與父類方法的簽名完全一致,而且與父類方法的可訪問性也必須一致 new隱藏,是指在子類中重新定義一個簽名與父類的方法相同的方法,這個方法可以不用new修飾,只是編譯時會彈出一個警告信息:如果是有意隱藏,請使用關鍵字new。

using System;     public class Test      {         public static void Main(String[] args){             A a=new B();              Console.Write(a.getVal()); // 輸出:A 雖然實例是B,但是執行的卻是A的方法                 a=new C();              Console.Write(a.getVal()); // 輸出:C 實例是C,而且C重寫的A的方法,所以執行C的方法                 B b=new B();              Console.Write(b.getVal()); // 輸出:B 只有定義和實例都是B,才執行B的方法         }      }     class A     {         // 要允許子類重寫,方法必須標識為virtual 或 abstract         public virtual String getVal(){              return "A";          }      }      class B : A     {         // 隱藏父類方法 用new標識,不標識時會出現編譯警告,不影響使用         public new String getVal(){              return "B";          }      }      class C : A     {         // 重寫方法 必須用override標識         public override String getVal(){              return "C";          }      }

而在Java中,不存在隱藏父類方法這一概念,Java只有重寫方法這一概念,同樣的代碼,在Java中執行和C#中執行截然不同:

class test     {         public static void main(String[] args)         {             A a=new B();      // 輸出:B  實例是B,執行的也是B的方法(在C#中,此時應該輸出A)             System.out.println(a.getVal());               a=new A();      // 輸出:A 只有定義和實例都是A,才執行A的方法             System.out.println(a.getVal());          }     }     class A     {         public String getVal(){              return "A";          }      }      class B extends A     {         public String getVal(){              return "B";          }      }

上述就是小編為大家分享的C# 中override重寫與new隱藏的區別是什么了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注創新互聯行業資訊頻道。

文章題目:C#中override重寫與new隱藏的區別是什么
網站路徑:http://m.newbst.com/article42/jocohc.html

成都網站建設公司_創新互聯,為您提供網站策劃、服務器托管網站排名網站設計全網營銷推廣網站設計公司

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

成都網站建設公司