Java多型中出現的繫結機制
阿新 • • 發佈:2022-03-16
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 方法。 */