<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 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    C++與JAVA在多態與覆蓋上的區別(一點猜測)

    Posted on 2006-11-16 20:28 itspy 閱讀(1609) 評論(6)  編輯  收藏 所屬分類: JAVA技術

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

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

    #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
    ?}
    }
    最后運行打印出來的是“TestBase”,也就是子類的函數起作用了。


    按照相同的思路,我寫了如下的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?
    ?
    };
    結果起作用的卻是父類的代碼,最后打印出來的是“Base”

    ?


    他們都是子類覆蓋了父內的函數,但是通用時卻通過父類來調用。為什么類似的結構卻產生了不同的結果,到底是因為C++與JAVA哪方面的不同產生的。


    評論

    # re: C++與JAVA在多態與覆蓋上的區別(一點猜測)  回復  更多評論   

    2006-11-16 21:15 by mul
    java的普通函數(非final)默認多態;
    c++使用virtual表示虛函數來實現多態;
    所以java的例子表現為多態性,c++的例子只是普通函數調用而已。

    # re: C++與JAVA在多態與覆蓋上的區別(一點猜測)  回復  更多評論   

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

    又學習了一小步,爭取每天一小步。

    # re: C++與JAVA在多態與覆蓋上的區別(一點猜測)  回復  更多評論   

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

    # re: C++與JAVA在多態與覆蓋上的區別(一點猜測)  回復  更多評論   

    2006-11-17 10:38 by 小鋒
    你的C++函數不具有多態性!也就無所謂區別可言。

    # re: C++與JAVA在多態與覆蓋上的區別(一點猜測)  回復  更多評論   

    2006-11-17 17:20 by ....
    老兄,你這也叫多態?看來你還應該加強OO方面的認識哦.

    # re: C++與JAVA在多態與覆蓋上的區別(一點猜測)  回復  更多評論   

    2006-11-17 20:55 by itspy
    謝謝各位指點,我這不是在學習嘛.

    或者是我描述的不太清楚,望各位多多指點.
    主站蜘蛛池模板: 美女视频黄是免费的网址| 国产在线精品免费aaa片| 免费人成网站在线观看10分钟| 亚洲成Av人片乱码色午夜| 国产一级a毛一级a看免费人娇| 国产AV无码专区亚洲AV手机麻豆| 成人午夜影视全部免费看| 亚洲综合国产精品第一页 | 亚洲伦理一二三四| 四虎永久在线精品免费观看视频 | 亚洲欧洲高清有无| 免费看国产精品3a黄的视频| 亚洲午夜精品一区二区麻豆| 国产精品免费_区二区三区观看| 国产精品亚洲天堂| 亚洲线精品一区二区三区影音先锋 | 亚洲Aⅴ无码一区二区二三区软件 亚洲AⅤ视频一区二区三区 | 暖暖免费高清日本中文| 羞羞视频在线观看免费| 亚洲成色WWW久久网站| 免费观看激色视频网站(性色)| 亚洲熟妇丰满xxxxx| 日韩亚洲国产二区| 在线播放免费人成毛片乱码| 亚洲国产成人久久| 国产精品麻豆免费版| 大妹子影视剧在线观看全集免费| 亚洲综合一区二区国产精品| 免费看片A级毛片免费看| a级毛片免费高清视频| 亚洲熟妇无码久久精品| 国产成人免费手机在线观看视频 | 又粗又硬又大又爽免费视频播放| a级毛片免费观看在线| 亚洲成AV人片久久| 亚洲成av人片在线观看天堂无码| 免费毛片a线观看| 亚洲人成色777777老人头| 亚洲综合AV在线在线播放| 久久久高清免费视频| 无遮挡免费一区二区三区|