Java之動態繫結

2021-07-24 21:38:57 字數 448 閱讀 5324

動態繫結就是多型。

class1繼承了class2,class2繼承了class3,一直到class[n-1]。定義class1的物件。

class1 class1test = new class1();

class1test.funtionname();

編譯器就會從class1開始尋找這個方法,如果在class1中不存在,就會去class2中尋找,直到找到為止,然後執行此方法。

a a =new b();

a.print(); //print函式為b重寫方法。

此時,a會呼叫b中的print方法。

b b=new c();

a=b;

a.print();

此時,a會呼叫c中的print方法;如果c中並沒有對print方法進行重寫,那麼會呼叫b中的方法。

不能使用父類例項去初始化子類的例項。

java動態繫結

class father class son extends father public static void main 1.當子類重寫了父類的方法時,f 會呼叫子類的方法。class father class son extends father public static void main ...

java動態繫結與靜態繫結

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

Java筆記 動態繫結

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