一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

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

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
主站蜘蛛池模板: 精品久久看 | 7mav视频| 国产视频三区 | 国产精品极品 | 男人狂躁女人gif动态图 | 久久久免费观成人影院 | 下雨天小说词枝 | 免费操比视频 | 国产成人精品一区二区不卡 | 精品国产自在天天线2019 | 免费国产成人α片 | 欧美综合国产精品日韩一 | 亚洲欧美另类专区 | 亚洲国产在线午夜视频无 | 韩国三级hd中文字幕李采潭 | 日韩欧美成末人一区二区三区 | 国产色图片 | 四虎永久在线精品国产馆v视影院 | 五月色天在线视频综合观看 | 免费看欧美一级特黄a大片一 | 久久综合网久久综合 | 九九热视频免费观看 | 精品区2区3区4区产品乱码9 | 日韩在线一区二区三区免费视频 | 99精品国产自产在线观看 | 办公室恋情在线 | 国内久久精品视频 | 無码一区中文字幕少妇熟女H | 四虎在线网站 | 2023最新伦理片 | 擦逼视频 | 学生小泬无遮挡女HD | 免费国产影视观看网站入口 | 国产日韩免费视频 | 美女把小内内脱个精光打屁屁 | 人妇小说 | 天天干天天操天天爽 | 无码一区国产欧美在线资源 | 天堂va在线 | 日日碰日日操 | 亚洲AV无码一区二区三区乱子伦 |