在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