<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    JUST DO IT ~

    我只想當個程序員

    方法 new override virtual

    摘 :  http://hacker.cnblogs.com/archive/2004/08/10/31774.aspx

    對virtual的說明是對的:(它一般用在基類中,子類中用override)
    1.無virtual時,編譯期就確定方法的類型了。也即:無法實現多態了。
    2.有vitual時,方法在運行時確定類型。可以實現多態,只要子類override基類的vitual方法。(也就是樓主的第2點)。

    實現java  動態調用 

     
    另外取個方法 與原來無關.


    對于new沒有說清楚:
    new與virtual并沒有必然的聯系。從字面上看,new聲明的方法是一個“新”方法,與基類完全沒有關系(雖然不幸與基類的某個方法同名同參)。也即:通過向上轉型(如:基類 引用名=new 子類())得到的引用將無法看到子類中new出來的方法。所以會出現樓主第3點中的結果。

     

     







    using System; 

    public class ClassFather 



    public string s1; 

    // virtual public void VirFun() 

    public void VirFun() 

    { Console.WriteLine( 
    "base  classfather virFun:"+ s1 );} 




    public class ClassBoy : ClassFather 



    public new void VirFun() 

    base.VirFun();} 




    public class ClassGirl : ClassFather 



    public new void VirFun() 



    base.VirFun(); 

    Console.WriteLine( s1 ); 






    public class Test 



    public static void Main() 



    ClassFather a 
    = new ClassFather(); 

    a.s1 
    = "father"

    a.VirFun(); 


    ClassFather b 
    = new ClassBoy(); 

    b.s1 
    = "boy"

    b.VirFun(); 


    ClassFather c 
    = new ClassGirl(); 

    c.s1 
    = "girl"

    c.VirFun(); 








    using System; 


    public class ClassFather 



    public string s1; 

    virtual public void VirFun() 

    { Console.WriteLine( "ClassFather  virfun()(: "+ s1 );} 

    }
     


    public class ClassBoy : ClassFather 



    public override void VirFun() 

    {
    Console.WriteLine( 
    "ClassBoy  virfun() : "+ s1 );   // base.VirFun();} 

    }
     


    public class ClassGirl : ClassFather 



    public new void VirFun() 



    //base.VirFun(); 

    //Console.WriteLine( s1 ); 

     Console.WriteLine( 
    "ClassGirl new  virfun() : "+ s1 );

    }
     

    }
     


    public class Test 



    public static void Main() 



    ClassFather a 
    = new ClassFather(); 

    a.s1 
    = "father"

    a.VirFun(); 


    ClassFather b 
    = new ClassBoy(); 

    b.s1 
    = "boy"

    b.VirFun(); 


    ClassFather c 
    = new ClassGirl(); 

    c.s1 
    = "girl"

    c.VirFun(); 

    }
     

    }



    posted on 2008-08-29 08:26 小高 閱讀(231) 評論(0)  編輯  收藏 所屬分類: DotNet

    導航

    <2008年8月>
    272829303112
    3456789
    10111213141516
    17181920212223
    24252627282930
    31123456

    統計

    常用鏈接

    留言簿(3)

    隨筆分類(352)

    收藏夾(19)

    關注的blog

    手冊

    搜索

    積分與排名

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 可以免费观看的毛片| 国产精品午夜免费观看网站| 999任你躁在线精品免费不卡| 亚洲精品高清一二区久久| 羞羞漫画页面免费入口欢迎你| 成人黄动漫画免费网站视频| 亚洲乱码在线视频| 大地资源免费更新在线播放| 亚洲中文字幕AV在天堂| 成年人免费观看视频网站| 亚洲av无码成人精品国产| 国产免费人人看大香伊| 美女羞羞视频免费网站| 亚洲国产精品自产在线播放| 精品免费久久久久国产一区| 九月丁香婷婷亚洲综合色| 免费女人高潮流视频在线观看 | 亚洲综合色区中文字幕| 毛片免费观看的视频在线| 亚洲精品色在线网站| 77777亚洲午夜久久多人| 免费观看在线禁片| 亚洲最大福利视频| 亚洲综合国产精品第一页| 精品国产污污免费网站| 亚洲天堂2017无码中文| www.亚洲精品| 成人免费在线观看网站| 亚洲AV日韩AV无码污污网站| 亚洲精品成人区在线观看| 国产精品免费看久久久| 麻豆狠色伊人亚洲综合网站| 免费不卡中文字幕在线| 无码国产精品一区二区免费模式| 亚洲AV无码久久久久网站蜜桃| 免费人成在线观看网站视频| 一个人看的www免费视频在线观看| 亚洲另类精品xxxx人妖| 亚洲AV无码一区二区三区在线观看 | 97在线线免费观看视频在线观看 | 精品国产人成亚洲区|