Scott@JAVA

          Java, 一杯濃濃的咖啡伴你到深夜

          運(yùn)行時多態(tài)

          ?

          class ?A? {
          ????
          int ?i? = ? 1 ;

          ????
          char ?f()? {
          ????????
          return ? ' A ' ;
          ????}


          ????
          static ? char ?g()? {
          ????????
          return ? ' A ' ;
          ????}

          }


          class ?B? extends ?A? {
          ????
          int ?i? = ? 2 ;??????????????????? // 變量重名

          ????
          char ?f()? {??????????????????? // 方法重寫
          ???????? return ? ' B ' ;
          ????}


          ????
          static ? char ?g()? {??????????? // 這種重寫不具有多態(tài)性。多態(tài)性指實例方法
          ???????? return ? ' B ' ;
          ????}

          }


          public ? class ?Test? {
          ????
          public ? static ? void ?main(String[]?args)? {
          ????????B?b?
          = ? new ?B();
          ????????System.out.println(b.i);
          ????????System.out.println(b.f());
          ????????System.out.println(b.g());
          ????????System.out.println(B.g());
          ????????A?a?
          = ?b;?????????????????? // 子類對象當(dāng)作父類對象使用
          ????????System.out.println(a.i);
          ????????System.out.println(a.f());
          ????????System.out.println(a.g());
          ????????System.out.println(A.g());
          ????}

          }



          程序運(yùn)行結(jié)果:
          2
          B
          B
          B
          1
          B
          A
          A

          程序分析:在該示例程序中,變量i產(chǎn)生數(shù)據(jù)成員變量隱藏;實例方法f()是方法重寫,對實例方法的重寫會產(chǎn)生運(yùn)行時多態(tài)性。static方法g()也是方法重寫,但這種方法重寫不具有運(yùn)行時多態(tài)的特征,多態(tài)特征是針對實例方法而言。因此當(dāng)子類對象作為父類對象使用時,在輸出結(jié)果中看到,只有f()發(fā)生了運(yùn)行時多態(tài)。

          posted on 2007-01-23 11:20 Scott@JAVA 閱讀(440) 評論(0)  編輯  收藏 所屬分類: Jave SE 6

          主站蜘蛛池模板: 赤城县| 巴彦县| 融水| 呼图壁县| 醴陵市| 绥宁县| 黄龙县| 沾益县| 榆中县| 天门市| 武汉市| 泗阳县| 华蓥市| 苍溪县| 阿拉善右旗| 宜春市| 图片| 东乡族自治县| 昌吉市| 屏边| 巴青县| 福贡县| 府谷县| 延安市| 定陶县| 壶关县| 衡南县| 太湖县| 安塞县| 台北县| 昌吉市| 金平| 河北省| 富裕县| 富锦市| 磐石市| 长治市| 马公市| 蒲江县| 乌拉特前旗| 锡林郭勒盟|