多型中super關鍵字的理解

2021-09-19 10:23:12 字數 741 閱讀 5404

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關鍵...