在 C++ 中, protected 成员在私有(private)继承中变得私有(private)。 所以我很困惑 Java 中会发生什么。这里的访问说明符保持不变还是什么?喜欢
如果假设存在以下代码,那么现在 shiva 仍将在 classB 中受到保护?我们可以在 classC 中再次使用它吗?
我们将不胜感激。
package package1
class classA
{
protected shiva;
}
////////////////////////
import package1
package package2
class classB extends classA
{}
//////////////////////
import package2
class classC extends classB
{}
最佳答案
是的,你可以使用它。
│ Class │ Package │ Subclass │ Subclass │ World
│ │ │(same pkg)│(diff pkg)│
────────────┼───────┼─────────┼──────────┼──────────┼────────
public │ + │ + │ + │ + │ +
────────────┼───────┼─────────┼──────────┼──────────┼────────
protected │ + │ + │ + │ + │
────────────┼───────┼─────────┼──────────┼──────────┼────────
no modifier │ + │ + │ + │ │
────────────┼───────┼─────────┼──────────┼──────────┼────────
private │ + │ │ │ │
+ : accessible blank : not accessible
有关更多引用,请找到此问题的答案 here .在我看来很相似。
关于java - 在java中继承后 protected 成员会发生什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57106323/