欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時(shí)間:2014年02月07日 11:14:10   作者:  
java的前期綁定在程序執(zhí)行前根據(jù)編譯時(shí)類型綁定,調(diào)用開(kāi)銷較小,如C語(yǔ)言只有前期綁定這種方法調(diào)用

后期綁定,是指在運(yùn)行時(shí)根據(jù)對(duì)象的類型進(jìn)行綁定,又叫動(dòng)態(tài)綁定或運(yùn)行時(shí)綁定。實(shí)現(xiàn)后期綁定,需要某種機(jī)制支持,以便在運(yùn)行時(shí)能判斷對(duì)象的類型,調(diào)用開(kāi)銷比前期綁定大。
Java中的static方法和final方法屬于前期綁定,子類無(wú)法重寫(xiě)final方法,成員變量(包括靜態(tài)及非靜態(tài))也屬于前期綁定。除了static方法和final方法(private屬于final方法)之外的其他方法屬于后期綁定,運(yùn)行時(shí)能判斷對(duì)象的類型進(jìn)行綁定。驗(yàn)證程序如下:

復(fù)制代碼 代碼如下:

class Base
{
    //成員變量,子類也有同樣的成員變量名
    public String test="Base Field";
    //靜態(tài)方法,子類也有同樣簽名的靜態(tài)方法
    public static void staticMethod()
    {
        System.out.println("Base staticMethod()");
    }
    //子類將對(duì)此方法進(jìn)行覆蓋
    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()");
    }
    //輸出成員變量的值,驗(yàn)證其為前期綁定。
    public static void testFieldBind(Base base)
    {
        System.out.println(base.test);
    }
    //靜態(tài)方法,驗(yàn)證其為前期綁定。
    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();
    }
    //調(diào)用非靜態(tài)方法,驗(yàn)證其為后期綁定。
    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()
 */

相關(guān)文章

  • java實(shí)現(xiàn)簡(jiǎn)單租車系統(tǒng)

    java實(shí)現(xiàn)簡(jiǎn)單租車系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)簡(jiǎn)單租車系統(tǒng),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • IDEA中的Structure模塊使用圖文詳解

    IDEA中的Structure模塊使用圖文詳解

    IDEA 的 Structure 功能,也是在看代碼中一個(gè)十分常用的功能,最通用的方法,就是點(diǎn)擊 IDEA 左下角的 Structure 標(biāo)簽頁(yè)即可,本文重點(diǎn)介紹IDEA中的Structure模塊使用詳解,感興趣的朋友跟隨小編一起看看吧
    2024-03-03
  • 如何使用lamda表達(dá)式對(duì)list進(jìn)行求和

    如何使用lamda表達(dá)式對(duì)list進(jìn)行求和

    這篇文章主要介紹了如何使用lamda表達(dá)式對(duì)list進(jìn)行求和問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • 實(shí)例講解Java并發(fā)編程之變量

    實(shí)例講解Java并發(fā)編程之變量

    這篇文章主要介紹了實(shí)例講解Java并發(fā)編程之變量,本文講解了編寫(xiě)線程安全需要關(guān)心的共享變量和可變變量,需要的朋友可以參考下
    2015-04-04
  • springboot使用filter獲取自定義請(qǐng)求頭的實(shí)現(xiàn)代碼

    springboot使用filter獲取自定義請(qǐng)求頭的實(shí)現(xiàn)代碼

    這篇文章主要介紹了springboot使用filter獲取自定義請(qǐng)求頭的實(shí)例代碼,代碼簡(jiǎn)單易懂,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-05-05
  • Eclipse中Debug時(shí)鼠標(biāo)懸停不能查看變量值解決辦法

    Eclipse中Debug時(shí)鼠標(biāo)懸停不能查看變量值解決辦法

    這篇文章主要介紹了Eclipse中Debug時(shí)鼠標(biāo)懸停不能查看變量值解決辦法,以及分享了一個(gè)簡(jiǎn)單補(bǔ)全代碼的方法,還是比較不錯(cuò)的,需要的朋友可以參考下。
    2017-11-11
  • Java設(shè)計(jì)模式之策略模式示例詳解

    Java設(shè)計(jì)模式之策略模式示例詳解

    這篇文章主要為大家詳細(xì)介紹了Java的策略模式,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-03-03
  • 詳解Java如何實(shí)現(xiàn)一個(gè)優(yōu)秀的散列表

    詳解Java如何實(shí)現(xiàn)一個(gè)優(yōu)秀的散列表

    這篇文章主要通過(guò)簡(jiǎn)單的示例為大家詳細(xì)介紹了在Java中如何實(shí)現(xiàn)一個(gè)優(yōu)秀的散列表,文中的示例代碼講解詳細(xì),具有一定的參考價(jià)值,需要的可以了解一下
    2023-07-07
  • SpringBoot集成MinIO的示例代碼

    SpringBoot集成MinIO的示例代碼

    對(duì)象存儲(chǔ)服務(wù)OSS是一種海量、安全、低成本、高可靠的云存儲(chǔ)服務(wù),適合存放任意類型的文件,這篇文章主要介紹了SpringBoot集成MinIO的示例代碼,需要的朋友可以參考下
    2023-06-06
  • Java中的System類、BigInteger類和BigDecimal類詳解

    Java中的System類、BigInteger類和BigDecimal類詳解

    這篇文章主要介紹了Java中的System類、BigInteger類和BigDecimal類詳解,arraycopy()方法,復(fù)制數(shù)組元素,比較適合底層調(diào)用,一般使用Arrays.copyOf()完成復(fù)制數(shù)組,需要的朋友可以參考下
    2023-09-09

最新評(píng)論