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

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

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

    posts - 82, comments - 269, trackbacks - 0, articles - 1
      BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

    本人對(duì)JAVA有一定的了解,最近開始看一些C++的東西,遇到了JAVA與C++的如下不同點(diǎn):就是JAVA與C++在覆蓋或者是多態(tài)性上不太一樣。

    現(xiàn)寫了兩塊代碼證明如下,至于為什么會(huì)有如此原因,我也不明白,希望有能懂C++與JAVA的人能出來(lái)講解一下。

    #include <stdio.h>
    #include? "iostream.h"

    class Base{
    ?public: void show(){
    ?cout<<"Base";
    ?}

    };

    class ExBase : public Base
    {
    ?public: void show(){
    ?cout<<"ExBase";
    ?}
    ?
    ?public: void showEnd(){
    ??cout<<"EndClass";
    ?}
    };

    void main(){
    ?Base? * base= new ExBase();?
    ?base->show();//打印Base?
    ?
    };

    ?

    //文件一
    package test;

    public class Base {
    ?static?? String abc="abc";

    ?public void show() {
    ??System.out.print("base");
    ?}

    }

    //文件二
    package test;
    public class ExBase extends Base {

    ?public void show() {
    ??System.out.print("TestBase");
    ?}
    }


    //文件三
    package test;
    public class Test {

    ?public static void main(String[] args) {
    ??Base base = new ExBase();
    ??base.show();//打印Base
    ?}
    }
    最后運(yùn)行打印出來(lái)的是“TestBase”,也就是子類的函數(shù)起作用了。


    按照相同的思路,我寫了如下的C++代碼:

    //文件四
    #include <stdio.h>
    #include? "iostream.h"

    class Base{
    ?public: void show(){
    ?cout<<"Base";
    ?}

    };

    class ExBase : public Base
    {
    ?public: void show(){
    ?cout<<"ExBase";?

    };

    void main(){
    ?Base? * base= new ExBase();?
    ?base->show();//打印Base?
    ?
    };
    結(jié)果起作用的卻是父類的代碼,最后打印出來(lái)的是“Base”

    ?


    他們都是子類覆蓋了父內(nèi)的函數(shù),但是通用時(shí)卻通過(guò)父類來(lái)調(diào)用。為什么類似的結(jié)構(gòu)卻產(chǎn)生了不同的結(jié)果,到底是因?yàn)镃++與JAVA哪方面的不同產(chǎn)生的。


    評(píng)論

    # re: C++與JAVA在多態(tài)與覆蓋上的區(qū)別(一點(diǎn)猜測(cè))  回復(fù)  更多評(píng)論   

    2006-11-16 21:15 by mul
    java的普通函數(shù)(非final)默認(rèn)多態(tài);
    c++使用virtual表示虛函數(shù)來(lái)實(shí)現(xiàn)多態(tài);
    所以java的例子表現(xiàn)為多態(tài)性,c++的例子只是普通函數(shù)調(diào)用而已。

    # re: C++與JAVA在多態(tài)與覆蓋上的區(qū)別(一點(diǎn)猜測(cè))  回復(fù)  更多評(píng)論   

    2006-11-16 21:40 by itspy
    樓上正解,我也剛找到相關(guān)資料。C++要表現(xiàn)為多態(tài),一定要用virtual.

    又學(xué)習(xí)了一小步,爭(zhēng)取每天一小步。

    # re: C++與JAVA在多態(tài)與覆蓋上的區(qū)別(一點(diǎn)猜測(cè))  回復(fù)  更多評(píng)論   

    2006-11-17 08:56 by dudu
    建議使用摘要方式發(fā)布!

    # re: C++與JAVA在多態(tài)與覆蓋上的區(qū)別(一點(diǎn)猜測(cè))  回復(fù)  更多評(píng)論   

    2006-11-17 10:38 by 小鋒
    你的C++函數(shù)不具有多態(tài)性!也就無(wú)所謂區(qū)別可言。

    # re: C++與JAVA在多態(tài)與覆蓋上的區(qū)別(一點(diǎn)猜測(cè))  回復(fù)  更多評(píng)論   

    2006-11-17 17:20 by ....
    老兄,你這也叫多態(tài)?看來(lái)你還應(yīng)該加強(qiáng)OO方面的認(rèn)識(shí)哦.

    # re: C++與JAVA在多態(tài)與覆蓋上的區(qū)別(一點(diǎn)猜測(cè))  回復(fù)  更多評(píng)論   

    2006-11-17 20:55 by itspy
    謝謝各位指點(diǎn),我這不是在學(xué)習(xí)嘛.

    或者是我描述的不太清楚,望各位多多指點(diǎn).
    主站蜘蛛池模板: 在线亚洲精品自拍| 中文字幕精品三区无码亚洲| 亚洲va在线va天堂va不卡下载| 精品熟女少妇AV免费观看| a级毛片免费在线观看| 久久久久久亚洲av无码蜜芽| 亚洲精品在线播放| 亚洲日韩中文无码久久| 免费中文字幕在线观看| 大学生美女毛片免费视频| 麻豆国产精品免费视频| 男女午夜24式免费视频| 成年免费a级毛片免费看无码| 国产亚洲精品仙踪林在线播放| 亚洲高清视频在线| 亚洲欧洲视频在线观看| 色婷婷亚洲十月十月色天| 国产亚洲色婷婷久久99精品 | 精品人妻系列无码人妻免费视频 | 五月天婷婷免费视频| 亚洲偷自精品三十六区| 亚洲电影免费观看| 亚洲网址在线观看你懂的| 亚洲熟妇av一区二区三区| 久久久精品国产亚洲成人满18免费网站 | 好久久免费视频高清| 二个人看的www免费视频| 香港经典a毛片免费观看看| 国产亚洲综合久久| 香蕉视频在线观看免费| 老牛精品亚洲成av人片| 亚洲精品色在线网站| 无码天堂亚洲国产AV| 成人精品国产亚洲欧洲| 美美女高清毛片视频黄的一免费 | 最近免费mv在线电影| 久久嫩草影院免费看夜色| 超清首页国产亚洲丝袜| 成人免费视频77777| 免费可以看黄的视频s色| av无码国产在线看免费网站|