談笑有鴻儒,往來(lái)無(wú)白丁

          在恰當(dāng)?shù)臅r(shí)間、地點(diǎn)以恰當(dāng)?shù)姆绞奖磉_(dá)給恰當(dāng)?shù)娜?..  閱讀的時(shí)候請(qǐng)注意分類,佛曰我日里面是談笑文章,其他是各個(gè)分類的文章,積極的熱情投入到寫(xiě)博的隊(duì)伍中來(lái),支持blogjava做大做強(qiáng)!向dudu站長(zhǎng)致敬>> > 我的微博敬請(qǐng)收聽(tīng)
          <2007年1月>
          31123456
          78910111213
          14151617181920
          21222324252627
          28293031123
          45678910

          技術(shù)型的項(xiàng)目管理,才是真正的戰(zhàn)無(wú)不勝
          個(gè)人微博:http://t.qq.com/badboyryan

          常用鏈接

          留言簿(43)

          隨筆分類

          隨筆檔案

          文章分類

          相冊(cè)

          收藏夾

          DELPHI資源

          ORACLE資源

          PHP學(xué)習(xí)網(wǎng)站

          PYTHON

          學(xué)習(xí)JAVA網(wǎng)站

          異國(guó)風(fēng)情

          王者歸來(lái)

          網(wǎng)上資源

          網(wǎng)友鏈接

          最新隨筆

          搜索

          •  

          積分與排名

          • 積分 - 930659
          • 排名 - 38

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          class A
          {
          ? ?public void func1()
          ? ?{
          ? ? ? System.out.println("A func1 is calling");
          ? ?}
          ? ?public void func2()
          ? ?{
          ? ? ? func1();
          ? ?}
          }
          class B extends A
          {
          ? ?public void func1()
          ? ?{
          ? ? ? System.out.println("B fun1 is calling");
          ? ?}
          }
          class C
          {
          ? ?public static void main(String [] args)
          ? ?{
          ? ? ? B b=new B();
          ? ? ? A a=b;
          ? ? ? callA(a);
          ? ? ? callA(new B());
          ? ?}
          ? ?public static void callA(A a)
          ? ?{
          ? ? ? a.func1();
          ? ? ? a.func2();
          ? ?}
          }


          運(yùn)行結(jié)果:

          D:\>javac C.java

          D:\>java C
          B fun1 is calling
          B fun1 is calling
          B fun1 is calling
          B fun1 is calling

          簡(jiǎn)單來(lái)說(shuō),就是RTTI,動(dòng)態(tài)類型判定,也就是

          B b=new B();
          A a=new B();

          只要等號(hào)右邊類型是什么類型,而且已經(jīng)覆蓋父類的方法,那么調(diào)用該方法時(shí),會(huì)自動(dòng)知道相應(yīng)的B中的覆蓋方法。這是一定的,運(yùn)行時(shí)多態(tài)。

          ==================================================

          只對(duì)方法進(jìn)行動(dòng)態(tài)判定,屬性的取值看,等號(hào)左邊,也就是編譯時(shí)類型。

          將A和B添加一個(gè)屬性,在索取值,看結(jié)果:

          class A
          {
          ? ?public String name = "A CLASS";
          ? ?public void func1()
          ? ?{
          ? ? ? System.out.println("A func1 is calling");
          ? ?}
          ? ?public void func2()
          ? ?{
          ? ? ? func1();
          ? ?}
          }
          class B extends A
          {
          ? ?public String name = "B CLASS";
          ? ?public void func1()
          ? ?{
          ? ? ? System.out.println("B fun1 is calling");
          ? ?}
          }
          public class C
          {
          ? ?public static void main(String [] args)
          ? ?{
          ? ? ? B b=new B();
          ? ? ? A a=b;
          ? ? ? callA(a);
          ? ? ? callA(new B());
          ? ? ?
          ? ? ?
          ? ? ? System.out.println(a.name);
          ? ? ? System.out.println(b.name);
          ? ? ? System.out.println(new B().name);
          ? ? ?

          ? ?}
          ? ?public static void callA(A a)
          ? ?{
          ? ? ? a.func1();
          ? ? ? a.func2();
          ? ?}
          }

          運(yùn)行結(jié)果:

          D:\>javac C.java

          D:\>java C
          B fun1 is calling
          B fun1 is calling
          B fun1 is calling
          B fun1 is calling
          A CLASS
          B CLASS
          B CLASS
          posted on 2007-01-05 09:53 壞男孩 閱讀(794) 評(píng)論(0)  編輯  收藏 所屬分類: java命令學(xué)習(xí)
          主站蜘蛛池模板: 万州区| 珠海市| 射洪县| 通州市| 翁牛特旗| 台北市| 弥渡县| 北票市| 沐川县| 梧州市| 麻栗坡县| 西贡区| 锡林郭勒盟| 巴彦淖尔市| 来凤县| 仲巴县| 门源| 怀柔区| 六枝特区| 彰化县| 新兴县| 岳阳县| 汝阳县| 涡阳县| 七台河市| 巨鹿县| 遵义市| 泰安市| 巴楚县| 黄平县| 贵定县| 汝州市| 正镶白旗| 雷山县| 克山县| 崇左市| 绥阳县| 衡水市| 阿尔山市| 沐川县| 邵阳市|