LittleRain

          小雨不打傘 打傘雨不小

          SL275之多態

          多態
          eg :
          class A{method();}
          class B extends A{method();}
          A a=new B();
          a.method()調用的是B的method()方法。//a.method()執行是,應該看引用a具體指向的內存空間實際存在的是什么對象。從這里來看,引用a所指向的實際內存空間是B的實例。

          方法的調用具體決定于運行時,編譯器只是檢查java語法的正誤。

          通過? 對象.屬性?? 的形式來獲得屬性值時,具體返回的屬性值是依賴于對象引用的類型的。

          而通過方法來獲得對象的屬性時,方法調用所返回的屬性則決定于具體內存中存在的真正對象

          (attention: 靜態的方法這一條不適用)

          Eg:
          public class TestPoly {
          ?public static void main(String[] args) {
          ?
          ?Father1 f=new Child1();
          ??????? System.out.println(f.age);//在編譯階段就已經可以確定f.age的值是:45,因為在編譯時不會生成對象,
          ??????????????????????????????????????????????//直接看引用類型即可,所以下面的((Child1)f).age之間看f的類型即可。
          ??????? System.out.println(((Child1)f).age);

          ??????? f.printAge();//這個需要在運行是通過方法來決定結果,此時,f引用指向的是Child1類型的對象空間,所以調用的是Child類的pringAge()方法,從而得出結果是:90
          ??????((Child1)f).printAge();
          ????????}
          }

          class Father1{
          ?int age=45;
          ?public void printAge(){
          ??System.out.println(age);
          ?}
          }

          class Child1 extends Father1{
          ?int age=90;
          ?public void printAge(){
          ??System.out.println(age);
          ?}
          }

          posted on 2006-10-04 15:33 小雨不打傘 閱讀(346) 評論(0)  編輯  收藏 所屬分類: SL-275學習筆記

          公告

          點擊這里給我發消息 QQ:232720563


            MSN:new_haihua@hotmail.com

          導航

          統計

          常用鏈接

          留言簿(2)

          隨筆分類(51)

          最新隨筆

          積分與排名

          最新評論

          閱讀排行榜

          主站蜘蛛池模板: 台北市| 大城县| 彭山县| 务川| 保山市| 金乡县| 商南县| 从江县| 巫山县| 高要市| 宁海县| 绍兴市| 徐水县| 正宁县| 扬州市| 永登县| 梨树县| 汶川县| 维西| 余江县| 马龙县| 杭州市| 小金县| 香港| 克什克腾旗| 石棉县| 斗六市| 黑山县| 蓝山县| 揭阳市| 峨边| 隆子县| 斗六市| 横山县| 馆陶县| 彰化市| 蓬溪县| 古丈县| 睢宁县| 密云县| 城固县|