子類不能繼承或覆蓋父類的private方法

2021-09-25 18:07:40 字數 759 閱讀 3861

題目:如果現在父類的乙個方法定義成private訪問許可權,在子類中將此方法宣告為default訪問許可權,那麼這樣還叫重寫嗎?

答:不是。因為private關鍵字的定義是「除了包含該成員的類之外,其他任何類都無法訪問這個成員.」,也就是說只有自己才能直接訪問到private成員,其他任何類,包括子類都無法訪問到這個成員。

我們可以來寫兩個類測試一下:

1.先寫乙個正常的重寫方法

public class overwrite1 

}class father

public void print()

}class son extends father

}

結果為:

2.再寫乙個父類方法為private的:

public class overwrite2 

}class father

private void print()

}class son extends father

}

結果為:

由此可見,在這種情況下子類的方法在重寫時,由於「看不到」父類的方法,變成了乙個新的方法,在呼叫方法時,只會用父類私有方法。

子類不能繼承父類的函式有哪些

但是乙個派生類的指標可以安全地轉化為乙個基類的指標。這樣刪除乙個基類的指標的時候,c 不管這個指標指向乙個基類物件還是乙個派生類的物件,呼叫的都是基類的析構函式而不是派生類的。如果你依賴於派生類的析構函式的 來釋放資源,而沒有過載析構函式,那麼會有資源洩漏。所以建議的方式是將析構函式宣告為虛函式。也...

理解父類構造方法不能被子類繼承

constructor constructor aclass.getconstructor context.class,viewgroup.class aclass extends bclass 注意 通過實驗證明,父類的構造方法 不能被子類繼承,例如bclass 有構造方法 b context,v...

py 子類繼承父類

class 派生類名 基類名 usr bin python coding utf 8 class parent 定義父類 parentattr 100def init self print 呼叫父類建構函式 defparentmethod self print 呼叫父類方法 defsetattr s...