1. 程式人生 > 其它 >Java多型中出現的繫結機制

Java多型中出現的繫結機制

Java多型中出現的繫結機制

  • 靜態繫結;動態繫結;

1、成員變數(包括靜態變數和例項變數——靜態繫結機制)

與變數所宣告的型別繫結;在編譯階段就完成了繫結;

2、例項方法(動態繫結機制)

與引用變數實際引用的物件繫結,呼叫重寫後的方法;由執行時的jvm決定;

3、靜態方法(靜態繫結機制)

與引用變數所宣告的型別繫結;在編譯階段就做了綁定了

4、舉例

   // 測試類     
        Father f = new Son();
        System.out.println(f.v1);// v1例項變數
        System.out.println(f.staticv2);//v2靜態變數
        /*
        v1 和 staticv2 ,靜態繫結,
        是與引用變數所宣告的型別(Father)繫結,
        與Son類裡的變數無關,
        所以此時列印的是Father類裡的變數。
         */

        f.m1();
        /*
         m1是例項方法,是動態繫結,與物件有關,
         所以此時執行子類裡被重寫後的方法,執行Son 類裡的m1方法。
         */

        f.staticm2();
        /*
        staticm2是靜態方法,屬於靜態繫結,與引用變數型別有關,
        所以此時執行的是Father 類裡的static 方法。
        */