1.產生的疑問
由於多型的存在,編譯與執行型別可以不同,只要滿足右邊例項化的物件是左邊類的子類即可
package com.duotai;
public class duotaitest2
}class a
public void show2()
}class b extends a
}class c extends b
public void show2()
}
首先分析第一步:a.show();
首先去a類中找此方法,找到編譯成功
b類中無此方法,即呼叫a類show()方法
show()中方法被子類重寫,即輸出:愛
呼叫b.show(),b類中不存在,就去繼承
的a類找,找到了發現在c類被重寫就去呼叫
我的疑惑就在這(學的不好ドモドモ\(_)(_)/ドモドモ)
super關鍵字不太理解,呼叫了父類的b的show()方法,
可是show()方法不是在c類中被重寫了嗎?既然如此呼叫的應該是子類的show()方法才對啊!
後來發現super代表了父類空間通過他就能直接定位到父類的方法,不論方法是否在子類中重寫
呼叫的都是父類未被重寫的方法,要不你先想想如果不是這樣不就死迴圈了嗎
因此下一次呼叫show2()方法列印
執行結果是: 愛你
繼承,super關鍵字,多型
1.繼承性 格式 class a extends b a 子類,派生類,subclass b 父類,超類,基類,superclass 體現 一旦子類a繼承父類b以後,子類a中就獲取了父類b中宣告的所有屬性和方法。特別的,父類宣告為private的屬性或方法,子類繼承父類以後,仍然認為獲取了父類中的私...
Java中 this 和 super 關鍵字理解
首先還是來看一下例子 package thi ample public class student public student long id public student long id,string name public void print package thi ample public...
this關鍵字和super關鍵字
this關鍵字和super關鍵字都必須放在構造方法的第一行,所有兩個關鍵字不能同時存在,任選其一即可,只需保證子類的所有構造方法呼叫父類的構造方法即可 this關鍵字的應用 this關鍵字用於區分區域性變數和成員變數的同名問題 有this關鍵字的是成員變數,或者是誰呼叫我,訪問的就是誰 this關鍵...