在 Java 中,我们不能在继承类时指定 private、protected 或 public。例如,下面的代码在 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 中做出这种架构决策以在继承期间删除访问修饰符,使用它有什么害处?