日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
C#override重寫(xiě)與new隱藏的區(qū)別

C#比java多一個(gè)new隱藏的功能。C# override重寫(xiě)相當(dāng)于java中沒(méi)有關(guān)鍵字的方法重寫(xiě)。所以java中方法是沒(méi)有隱藏功能的。

目前成都創(chuàng)新互聯(lián)公司已為近千家的企業(yè)提供了網(wǎng)站建設(shè)、域名、虛擬空間、網(wǎng)站托管、服務(wù)器租用、企業(yè)網(wǎng)站設(shè)計(jì)、汝南網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。

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

 
 
 
  1. using System;     
  2. public class Test      
  3. {     
  4.     public static void Main(String[] args){     
  5.         A a=new B();      
  6.         Console.Write(a.getVal()); // 輸出:A 雖然實(shí)例是B,但是執(zhí)行的卻是A的方法     
  7.     
  8.         a=new C();      
  9.         Console.Write(a.getVal()); // 輸出:C 實(shí)例是C,而且C重寫(xiě)的A的方法,所以執(zhí)行C的方法     
  10.     
  11.         B b=new B();      
  12.         Console.Write(b.getVal()); // 輸出:B 只有定義和實(shí)例都是B,才執(zhí)行B的方法     
  13.     }      
  14. }     
  15. class A     
  16. {     
  17.     // 要允許子類重寫(xiě),方法必須標(biāo)識(shí)為virtual 或 abstract     
  18.     public virtual String getVal(){      
  19.         return "A";      
  20.     }      
  21. }      
  22. class B : A     
  23. {     
  24.     // 隱藏父類方法 用new標(biāo)識(shí),不標(biāo)識(shí)時(shí)會(huì)出現(xiàn)編譯警告,不影響使用     
  25.     public new String getVal(){      
  26.         return "B";      
  27.     }      
  28. }      
  29. class C : A     
  30. {     
  31.     // 重寫(xiě)方法 必須用override標(biāo)識(shí)     
  32.     public override String getVal(){      
  33.         return "C";      
  34.     }      
  35. }    

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

 
 
 
  1. class test     
  2. {     
  3.     public static void main(String[] args)     
  4.     {     
  5.         A a=new B();      
  6. // 輸出:B  實(shí)例是B,執(zhí)行的也是B的方法(在C#中,此時(shí)應(yīng)該輸出A)     
  7.         System.out.println(a.getVal());      
  8.          a=new A();      
  9. // 輸出:A 只有定義和實(shí)例都是A,才執(zhí)行A的方法     
  10.         System.out.println(a.getVal());      
  11.     }     
  12. }     
  13. class A     
  14. {     
  15.     public String getVal(){      
  16.         return "A";      
  17.     }      
  18. }      
  19. class B extends A     
  20. {     
  21.     public String getVal(){      
  22.         return "B";      
  23.     }      
  24. }    

好了,C# override重寫(xiě)與new隱藏的區(qū)別就介紹到這里。

【編輯推薦】

  1. 學(xué)習(xí)C#消息:循序漸進(jìn)
  2. 解惑答疑:C#委托和事件
  3. 學(xué)習(xí)C#實(shí)現(xiàn)HTTP協(xié)議:多線程文件傳輸
  4. 進(jìn)一步接觸C#委托與事件
  5. 淺析四種C#轉(zhuǎn)換的區(qū)別

標(biāo)題名稱:C#override重寫(xiě)與new隱藏的區(qū)別
路徑分享:http://www.dlmjj.cn/article/copdgog.html