<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命令學習
    主站蜘蛛池模板: 亚洲va久久久噜噜噜久久| 中文字幕精品亚洲无线码一区 | 国产精品亚洲mnbav网站 | 91精品免费久久久久久久久| 久久精品亚洲视频| 毛片在线播放免费观看| 亚洲AV日韩AV永久无码久久| 久草视频在线免费看| 亚洲资源在线观看| 亚洲成人免费电影| 国产亚洲精品影视在线| 国产色爽女小说免费看| 深夜久久AAAAA级毛片免费看| 久久久久亚洲AV无码专区网站| 久久久WWW成人免费精品| 亚洲精品无码久久久久sm| 免费精品无码AV片在线观看| 亚洲视频免费观看| 成年女人免费视频播放77777| 怡红院亚洲红怡院在线观看| 亚洲国产一区二区三区| 最近国语视频在线观看免费播放| 亚洲精品免费在线观看| 成人黄色免费网址| 偷自拍亚洲视频在线观看99| 亚洲性猛交XXXX| 91免费国产精品| 亚洲愉拍一区二区三区| 亚洲高清成人一区二区三区| 亚洲免费在线视频| 亚洲综合一区二区三区四区五区| 免费jjzz在线播放国产| 久久久久久国产精品免费免费男同 | 免费不卡视频一卡二卡| 国产大陆亚洲精品国产| 亚洲成av人在线视| 在线观看免费a∨网站| 中文成人久久久久影院免费观看| 亚洲乱码在线视频| 亚洲日韩国产精品第一页一区| 国产精品免费网站|