<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 小高 閱讀(232) 評論(0)  編輯  收藏 所屬分類: DotNet

    導航

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

    統計

    常用鏈接

    留言簿(3)

    隨筆分類(352)

    收藏夾(19)

    關注的blog

    手冊

    搜索

    積分與排名

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 国产偷伦视频免费观看| 无码一区二区三区亚洲人妻| 国精产品一区一区三区免费视频| 亚洲精品网站在线观看不卡无广告| 理论亚洲区美一区二区三区| 国内外成人免费视频| 亚洲AV电影天堂男人的天堂| 日本高清免费aaaaa大片视频| 亚洲一区二区观看播放| 性做久久久久免费看| 美女视频黄频a免费大全视频| 亚洲成av人在片观看| 中文在线免费视频| 水蜜桃亚洲一二三四在线 | 亚洲国产日韩在线人成下载| 天天影院成人免费观看| 亚洲www77777| 国产伦精品一区二区三区免费下载| 亚洲AV成人无码网站| 国产亚洲情侣一区二区无码AV| 免费的全黄一级录像带| 亚洲老熟女@TubeumTV| 蜜桃精品免费久久久久影院| 国产亚洲午夜精品| 亚洲AV无码专区电影在线观看 | 麻豆高清免费国产一区| 国产成人精品日本亚洲专| 国产午夜免费秋霞影院| 中文字幕成人免费高清在线| 久久亚洲国产伦理| 女人18毛片水真多免费看| 成年大片免费高清在线看黄| 亚洲AV日韩精品久久久久久| 拍拍拍又黄又爽无挡视频免费| 一级女性全黄久久生活片免费| 亚洲国产一区国产亚洲| 午夜网站免费版在线观看| 久久久久久久久久免免费精品| 亚洲精品亚洲人成在线麻豆| 日韩在线看片免费人成视频播放| 精选影视免费在线 |