java動態繫結

2021-06-26 18:11:43 字數 542 閱讀 3943

class father

class son extends father

public static void main()

}

1. 當子類重寫了父類的方法時,f 會呼叫子類的方法。

class father

class son extends father

public static void main()

}

2. 注意此處,因為子類中方法的引數型別變了,所以子類中的方法是乙個全新的方法,與父類中的毫無關係,所以 f 會去呼叫父類中的方法。因為與父類中的方法引數型別不一致,此處會自動轉型。

class father

class son extends father

public static void main()

}

3. 動態繫結只針對物件的方法,對於成員變數無效,因為成員變數不能被重寫。f.b 的值為10。

java動態繫結與靜態繫結

首先需要了解方法的呼叫過程 1.編譯器檢視物件宣告型別與方法。假設呼叫x.f param 且隱式引數型別x宣告為c型別的物件。需要注意的是 可能存在多個名稱為f的方法,但是引數型別不一樣,例如f string f int 這時編譯器會列舉 出c類中方法名為f和c類的父類中修飾符為public的f方法...

Java之動態繫結

動態繫結就是多型。class1繼承了class2,class2繼承了class3,一直到class n 1 定義class1的物件。class1 class1test new class1 class1test.funtionname 編譯器就會從class1開始尋找這個方法,如果在class1中不...

Java筆記 動態繫結

假如有兩個類,如下 class life class animal extends life life 類和 animal 類中都有 tostring 方法,如果發生下面的情況,會呼叫哪個 tostring 方法呢 life a new animal system.out.println a.tos...