<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 壞男孩 閱讀(792) 評論(0)  編輯  收藏 所屬分類: java命令學習
    主站蜘蛛池模板: 国产成人精品免费视频大| 亚洲黄色免费网站| 免费观看a级毛片| 久久综合九色综合97免费下载| 国产亚洲福利精品一区二区| 亚洲午夜久久久久久尤物| 久久夜色精品国产亚洲AV动态图| 亚洲国产成人乱码精品女人久久久不卡| 久久久久久久免费视频| 999久久久免费精品播放| 中国一级毛片免费看视频| 免费看一级毛片在线观看精品视频| 亚洲国产综合精品中文第一| 亚洲综合国产精品| 亚洲国产精久久久久久久| 亚洲女久久久噜噜噜熟女| 亚洲视频在线一区二区| 免费二级毛片免费完整视频| 香蕉高清免费永久在线视频| 97无码免费人妻超级碰碰夜夜| 69式互添免费视频| 久久久久av无码免费网 | 亚洲国产a级视频| 国产精品无码一区二区三区免费| 成年女人看片免费视频播放器| 国产在线观看片a免费观看| 成年人免费的视频| 国产一卡2卡3卡4卡无卡免费视频 国产一卡二卡3卡四卡免费 | 色费女人18女人毛片免费视频| 国产亚洲欧美日韩亚洲中文色| 亚洲精品动漫免费二区| 亚洲av无码片vr一区二区三区| 亚洲国产成人精品无码区花野真一| 亚洲精品无码久久久久牙蜜区| 亚洲成av人片天堂网无码】| 亚洲精品理论电影在线观看| 国产精品亚洲五月天高清| 黄色网址大全免费| eeuss免费影院| 久久精品国产影库免费看| 99免费视频观看|