<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

    手冊

    搜索

    積分與排名

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 国产日韩AV免费无码一区二区三区| 亚洲乱理伦片在线观看中字| 久久av免费天堂小草播放| 午夜免费福利影院| 亚洲AV无码精品国产成人| 免费观看美女裸体网站| 在线观看亚洲免费视频| 国产无遮挡又黄又爽免费视频| 国产亚洲精品欧洲在线观看| 日本免费人成黄页网观看视频| 国产精品亚洲lv粉色| 亚洲精品高清一二区久久| 中文字幕视频免费在线观看| 亚洲国产老鸭窝一区二区三区 | 一二三四免费观看在线电影| 色在线亚洲视频www| 在线精品免费视频| 国产亚洲福利精品一区二区| 亚洲国产精品成人一区| 中文在线免费视频| 18gay台湾男同亚洲男同| 99热在线精品免费全部my| 国产成人综合亚洲绿色| 在线观看国产区亚洲一区成人| 久久精品国产这里是免费| 亚洲电影在线播放| 国产美女a做受大片免费| a成人毛片免费观看| 亚洲高清视频在线播放| 狠狠久久永久免费观看| 在线看片免费人成视频久网下载| 亚洲嫩模在线观看| 免费鲁丝片一级观看| 久青草视频在线观看免费 | 亚洲性无码AV中文字幕| 亚洲精品综合久久| 精品熟女少妇av免费久久| 亚洲大尺度无码无码专线一区| 亚洲人成人一区二区三区| 9久9久女女免费精品视频在线观看 | 一区二区免费视频|