<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時,方法在運行時確定類型??梢詫崿F多態,只要子類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 小高 閱讀(242) 評論(0)  編輯  收藏 所屬分類: DotNet

    導航

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

    統計

    常用鏈接

    留言簿(3)

    隨筆分類(352)

    收藏夾(19)

    關注的blog

    手冊

    搜索

    積分與排名

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 国产v片免费播放| 精品久久免费视频| 13小箩利洗澡无码视频网站免费| 中国一级全黄的免费观看| 久久午夜夜伦鲁鲁片免费无码影视| 16女性下面无遮挡免费| 4444亚洲国产成人精品| 亚洲永久网址在线观看| 一本久久免费视频| 国产91免费视频| 伊人婷婷综合缴情亚洲五月| 亚洲图片在线观看| 国产成人+综合亚洲+天堂| 91精品成人免费国产片| 亚洲一级在线观看| 国产成人精品无码免费看| 国产亚洲精品免费| caoporn国产精品免费| 日本一道高清不卡免费| 亚洲国产成人综合| 久久久久久久久久国产精品免费| 免费中文字幕一级毛片| 亚洲成年网站在线观看| 88xx成人永久免费观看| 亚洲欧洲无码AV电影在线观看| 国产亚洲精品国产福利在线观看| 亚洲精品乱码久久久久久不卡| 亚洲成av人片在线看片| 一级毛片免费观看不卡的| 亚洲国产精品成人精品软件 | 色吊丝永久在线观看最新免费| 欧美日韩亚洲精品| 成人a免费α片在线视频网站| 亚洲爱情岛论坛永久| 两性色午夜视频免费网| 精品亚洲成a人片在线观看| 久久午夜夜伦鲁鲁片免费无码| 亚洲一区二区三区在线观看蜜桃 | 亚洲av午夜福利精品一区| 一个人免费观看日本www视频| 国产免费变态视频网址网站|