java 的繼承,深入理解

2021-09-06 05:35:36 字數 1193 閱讀 6463

一切**於乙個問題:「如果超類中的方法,沒有訪問控制,什麼限定符都沒用,那在子類中覆蓋這個方法,並定義成private可以嗎,怎麼驗證呢?」

思路辦法:編碼測試之~ 

public

class

atest }

public

class btest extends

atest

}/**

*編譯報錯,子類嘗試覆蓋父類的方法,但是卻賦予了較低的許可權private

*/

這麼設計,考慮到向上轉型,父類引用才能動態連線呼叫子類的方法,應該是基於這個考慮,如果不太理解原因,可以繼續往下看。

以下是擴充套件測試,有興趣可以繼續看:(先寫結論,若知道結論,可以跳過對應段解釋)

1.對於父類中定義的方法,如果子類中重寫了該方法,那麼父類型別的引用將會呼叫子類中的這個方法,這就是動態連線。 

public

class

atest }

public

class btest extends

atest}

public

class

test }/*

output:

hello btest

*///

~

2.如果子類沒有覆蓋父類的方法,父類引用則呼叫父類中宣告的方法。但是父類引用不能呼叫父類中定義的private方法。 

public

class

atest }

public

class btest extends

atest

public

class

test

}

3.子類可以繼承父類的靜態屬性和靜態方法,但是不可以重寫靜態方法。

public

class

atest }

public

class btest extends

atest}

public

class

test }/*

output:

hello atest

*///:~

//解釋:因為btest的hello()方法沒有覆蓋父類的方法,所以atest的引用hello(),還是呼叫父類的方法

深入理解js繼承

var nam var man1 man1.name hkj man1.age 20 function man name,age var man2 man hkj 20 function man name,age var man3 new man3 hkj 20 vat man4 new man4 ...

JAVA 深入理解 IO

定義 如果乙個類是用來完成程式和裝置之間的資料傳輸,則這個類有乙個特殊的稱謂叫 流 流和類的關係 流一定是類,但是類不一定是流。分類 輸入流 輸出流 位元組流 字元流 原始流 包裹流 常用流 的介紹 四大基本抽象流 inputstream outputsream reader writer 位元組流...

C 繼承深入理解(一)

繼承 子類繼承父類,子類的物件可以直接訪問父類 公有或保護 成員繼承最大特點提高 重用,也體現 的共性與個性 派生類 繼承父類的子類 基類 被繼承類 父類 繼承語法 派生類 繼承方式 基類 繼承方式 1.private 私有繼承.預設為此繼承方式.不能繼承基類的私有成員.繼承基類公有成員,在派生類中...