激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務器之家 - 編程語言 - JAVA教程 - java的前期綁定和后期綁定使用示例

java的前期綁定和后期綁定使用示例

2019-11-05 11:34java教程網 JAVA教程

java的前期綁定在程序執行前根據編譯時類型綁定,調用開銷較小,如C語言只有前期綁定這種方法調用

后期綁定,是指在運行時根據對象的類型進行綁定,又叫動態綁定或運行時綁定。實現后期綁定,需要某種機制支持,以便在運行時能判斷對象的類型,調用開銷比前期綁定大。
Java中的static方法和final方法屬于前期綁定,子類無法重寫final方法,成員變量(包括靜態及非靜態)也屬于前期綁定。除了static方法和final方法(private屬于final方法)之外的其他方法屬于后期綁定,運行時能判斷對象的類型進行綁定。驗證程序如下:

 

復制代碼代碼如下:

class Base
{
    //成員變量,子類也有同樣的成員變量名
    public String test="Base Field";
    //靜態方法,子類也有同樣簽名的靜態方法
    public static void staticMethod()
    {
        System.out.println("Base staticMethod()");
    }
    //子類將對此方法進行覆蓋
    public void notStaticMethod()
    {
        System.out.println("Base notStaticMethod()");
    }

}
public class Derive extends Base
{
    public String test="Derive Field";
    public static void staticMethod()
    {
        System.out.println("Derive staticMethod()");
    }
    @Override
    public void notStaticMethod()
    {
        System.out.println("Derive notStaticMethod()");
    }
    //輸出成員變量的值,驗證其為前期綁定。
    public static void testFieldBind(Base base)
    {
        System.out.println(base.test);
    }
    //靜態方法,驗證其為前期綁定。
    public static void testStaticMethodBind(Base base)
    {
        //The static method test() from the type Base should be accessed in a static way
        //使用Base.test()更加合理,這里為了更為直觀的展示前期綁定才使用這種表示。
        base.staticMethod();
    }
    //調用非靜態方法,驗證其為后期綁定。
    public static void testNotStaticMethodBind(Base base)
    {
        base.notStaticMethod();
    }
    public static void main(String[] args)
    {
        Derive d=new Derive();
        testFieldBind(d);
        testStaticMethodBind(d);
        testNotStaticMethodBind(d);
    }
}
/*程序輸出:
Base Field
Base staticMethod()
Derive notStaticMethod()
 */

延伸 · 閱讀

精彩推薦
  • JAVA教程java操作mongodb實現CURD功能實例

    java操作mongodb實現CURD功能實例

    mongodb支持多種語言,并且提供了多種語言的驅動,本文使用java操作mongodb實現CURD功能,大家參考使用吧 ...

    java教程網3632019-10-25
  • JAVA教程java中的轉義字符介紹

    java中的轉義字符介紹

    普通的轉義字符序列和八進制轉義字符都比Unicode轉義字符要好得多,因為與Unicode轉義字符不同,轉義字符序列是在程序被解析為各種符號之后被處理的 ...

    java之家3782019-10-14
  • JAVA教程java Spring整合Freemarker的詳細步驟

    java Spring整合Freemarker的詳細步驟

    本文對Spring整合Freemarker步驟做了詳細的說明,按步驟操作一定可以整合通過,這里提供給大家做參考 ...

    java技術網4692019-10-20
  • JAVA教程Java泛型的簡單實例

    Java泛型的簡單實例

    這篇文章介紹了Java泛型的簡單實例,有需要的朋友可以參考一下 ...

    java技術網4932019-10-16
  • JAVA教程java中文轉全拼工具類分享

    java中文轉全拼工具類分享

    這篇文章主要介紹了一個JAVA將漢字轉換為全拼的工具類,大參考使用吧 ...

    java代碼網1632019-11-01
  • JAVA教程java多線程編程之線程的生命周期

    java多線程編程之線程的生命周期

    線程要經歷開始(等待)、運行、掛起和停止四種不同的狀態。這四種狀態都可以通過Thread類中的方法進行控制。下面給出了Thread類中和這四種狀態相關的...

    java教程網1812019-11-04
  • JAVA教程java nio基礎使用示例

    java nio基礎使用示例

    傳統的io技術為阻塞的,java新nio是非阻塞的,注冊一個op_read事件,注冊到selector對象上,當有數據到來時候,selector回通知之前注冊事件的對象,進行read處...

    java技術網4712019-10-21
  • JAVA教程JAVA HashMap詳細介紹和示例

    JAVA HashMap詳細介紹和示例

    我們先對HashMap有個整體認識,然后再學習它的源碼,最后再通過實例來學會使用HashMap。 ...

    java開發網2382019-10-18
主站蜘蛛池模板: 国产精品一二三区 | 日韩电影毛片 | 91精品国产777在线观看 | 久草在线小说 | 午夜a狂野欧美一区二区 | 99riav视频一区二区 | 日本aaaa片毛片免费观看视频 | 免费看欧美一级特黄a大片 久久免费视频一区二区三区 | 911视频免费版 | 黄色片网站在线看 | 午夜视频你懂的 | 国产日产精品一区二区三区四区 | 激情午夜天 | 国产成人av免费看 | 国产一区二区精品在线观看 | 日韩激情 | 国产午夜精品久久久 | 羞羞视频免费观看网站 | 欧美一级高潮片免费的 | 免费人成在线观看网站 | 欧美视频国产精品 | 婷婷久久综合九色综合色多多蜜臀 | 成人毛片在线免费观看 | 久久久麻豆 | 午夜天堂在线视频 | 九九热免费在线观看 | 99精品视频一区二区三区 | 最新中文字幕日本 | 欧美另类视频一区 | 毛片在线视频免费观看 | 久久久青 | 国产91精品久久久 | 亚洲免费高清 | 91精品国产92久久久久 | 亚洲精品动漫在线观看 | 黄色美女网站免费看 | 久久久婷婷一区二区三区不卡 | 国产乱淫a∨片免费观看 | av懂色| 国产又粗又爽又深的免费视频 | 欧美在线观看视频网站 |