新聞中心
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。
- using System;
- public class Test
- {
- public static void Main(String[] args){
- A a=new B();
- Console.Write(a.getVal()); // 輸出:A 雖然實(shí)例是B,但是執(zhí)行的卻是A的方法
- a=new C();
- Console.Write(a.getVal()); // 輸出:C 實(shí)例是C,而且C重寫(xiě)的A的方法,所以執(zhí)行C的方法
- B b=new B();
- Console.Write(b.getVal()); // 輸出:B 只有定義和實(shí)例都是B,才執(zhí)行B的方法
- }
- }
- class A
- {
- // 要允許子類重寫(xiě),方法必須標(biāo)識(shí)為virtual 或 abstract
- public virtual String getVal(){
- return "A";
- }
- }
- class B : A
- {
- // 隱藏父類方法 用new標(biāo)識(shí),不標(biāo)識(shí)時(shí)會(huì)出現(xiàn)編譯警告,不影響使用
- public new String getVal(){
- return "B";
- }
- }
- class C : A
- {
- // 重寫(xiě)方法 必須用override標(biāo)識(shí)
- public override String getVal(){
- return "C";
- }
- }
而在Java中,不存在隱藏父類方法這一概念,Java只有重寫(xiě)方法這一概念,同樣的代碼,在Java中執(zhí)行和C#中執(zhí)行截然不同:
- class test
- {
- public static void main(String[] args)
- {
- A a=new B();
- // 輸出:B 實(shí)例是B,執(zhí)行的也是B的方法(在C#中,此時(shí)應(yīng)該輸出A)
- System.out.println(a.getVal());
- a=new A();
- // 輸出:A 只有定義和實(shí)例都是A,才執(zhí)行A的方法
- System.out.println(a.getVal());
- }
- }
- class A
- {
- public String getVal(){
- return "A";
- }
- }
- class B extends A
- {
- public String getVal(){
- return "B";
- }
- }
好了,C# override重寫(xiě)與new隱藏的區(qū)別就介紹到這里。
【編輯推薦】
- 學(xué)習(xí)C#消息:循序漸進(jìn)
- 解惑答疑:C#委托和事件
- 學(xué)習(xí)C#實(shí)現(xiàn)HTTP協(xié)議:多線程文件傳輸
- 進(jìn)一步接觸C#委托與事件
- 淺析四種C#轉(zhuǎn)換的區(qū)別
標(biāo)題名稱:C#override重寫(xiě)與new隱藏的區(qū)別
路徑分享:http://www.dlmjj.cn/article/copdgog.html


咨詢
建站咨詢
