在Java中,我們不能在繼承類時指定private,protected或public。例如下面的代碼在Java中是不可能的。爲什麼?爲什麼Java沒有基於訪問指定符的繼承
class A {
public void display() {
//Some implementation of display logic.
}
}
class B extends **protected** A
{
public void show() {
display();
//some more logic.
}
}
B obj = new B();
obj.show();
我不想要obj.display()並需要隱藏它的實現從外部世界。在C++中,我們可以使用基於訪問修飾符的繼承,但在java中不能。我的問題是,如果我們想隱藏實現,我們如何實現這一目標?
爲什麼在Java中採用此架構決策在繼承期間刪除訪問修飾符時,使用它有什麼危害?
什麼是你想實現與訪問修飾符爲基類? – jlordo
是的,更新了問題。 –
我認爲他是問爲什麼......在我看來,Ankit,Java被設計成純粹的OO語言..而C++也被設計爲支持OO範式。所以這裏Java的人認爲這些在C++中的東西可以使事情更復雜,所以他們離開它。 所以,如果你仍然有像這樣的probs意味着,很明顯,你沒有完全轉向Java。你正試圖在Java中實現C++。這不好。 所以我建議你重新考慮你目前的概率的OO設計。 – Dreamer