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

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

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

    談笑有鴻儒,往來無白丁

    在恰當的時間、地點以恰當的方式表達給恰當的人...  閱讀的時候請注意分類,佛曰我日里面是談笑文章,其他是各個分類的文章,積極的熱情投入到寫博的隊伍中來,支持blogjava做大做強!向dudu站長致敬>> > 我的微博敬請收聽
    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();
    ? ?}
    }


    運行結果:

    D:\>javac C.java

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

    簡單來說,就是RTTI,動態類型判定,也就是

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

    只要等號右邊類型是什么類型,而且已經覆蓋父類的方法,那么調用該方法時,會自動知道相應的B中的覆蓋方法。這是一定的,運行時多態。

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

    只對方法進行動態判定,屬性的取值看,等號左邊,也就是編譯時類型。

    將A和B添加一個屬性,在索取值,看結果:

    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();
    ? ?}
    }

    運行結果:

    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 壞男孩 閱讀(799) 評論(0)  編輯  收藏 所屬分類: java命令學習
    主站蜘蛛池模板: 亚洲av无码专区青青草原| 亚洲色图校园春色| 亚洲国产日韩成人综合天堂| 国产精品亚洲不卡一区二区三区| 国产91成人精品亚洲精品| 精品国产免费一区二区三区| 午夜视频在线免费观看| 免费无码精品黄AV电影| 国产精品亚洲精品| 最近更新免费中文字幕大全| 亚洲日韩精品射精日| 精品四虎免费观看国产高清午夜| 日本高清免费网站| 婷婷亚洲综合五月天小说| 亚洲av无码专区在线电影天堂 | 亚洲乱码国产乱码精华| 女人张开腿给人桶免费视频| 青娱乐在线免费观看视频| 日韩在线播放全免费| 久久精品国产69国产精品亚洲| 香蕉免费一区二区三区| 亚洲国产精品日韩在线观看| 免费看一区二区三区四区| 91精品国产亚洲爽啪在线观看| 可以免费看的卡一卡二| 韩国亚洲伊人久久综合影院| 青苹果乐园免费高清在线| 精品亚洲国产成人av| 在线A亚洲老鸭窝天堂| 精品久久8x国产免费观看| 亚洲国产美女精品久久久| 国产成人福利免费视频| 亚洲AV无码AV吞精久久| 亚洲乱码中文字幕综合| 亚洲成av人在线观看网站| 久久青青草原亚洲av无码| 亚洲免费人成视频观看| 国产产在线精品亚洲AAVV| 亚洲男人的天堂在线播放| 免费无码又爽又刺激高潮 | 久久青青草原亚洲av无码|