<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午夜精品一区二区三区| 精品国产成人亚洲午夜福利| 在线观看国产情趣免费视频| 免费的黄色网页在线免费观看| 亚洲AV无码精品无码麻豆| 7723日本高清完整版免费| 青草青草视频2免费观看| 亚洲av综合av一区| 最近免费中文字幕视频高清在线看| 欧美日韩亚洲精品| 亚洲AV永久精品爱情岛论坛| 一个人免费观看在线视频www| 免费人成视频在线观看免费| 亚洲图片在线观看| 免费人成网站7777视频| 69影院毛片免费观看视频在线| 国产精品亚洲专区无码牛牛 | 成人免费夜片在线观看| 久久精品国产亚洲香蕉| 成人毛片免费在线观看| 你好老叔电影观看免费| 亚洲精品国产高清在线观看| 亚洲国产美女精品久久久久∴| 最近的中文字幕大全免费版| 日韩免费电影网址| 日本中文字幕免费看| 亚洲精品91在线| 亚洲精品亚洲人成在线观看| 永久免费AV无码网站在线观看| 免费精品无码AV片在线观看 | 亚洲香蕉免费有线视频| 精品熟女少妇aⅴ免费久久| 亚洲一区二区三区成人网站| 国产成人A人亚洲精品无码| 国产中文字幕免费| 最新中文字幕免费视频| 久视频精品免费观看99| 人妻在线日韩免费视频| 青青久久精品国产免费看| 亚洲欧美日韩综合久久久|