Java 为什么一个包中父类的受保护方法不能使用其子类(位于不同包中)中的父引用进行访问

Java 为什么一个包中父类的受保护方法不能使用其子类(位于不同包中)中的父引用进行访问,java,package,protected,Java,Package,Protected,为什么一个包中父类的受保护方法不能使用其子类(位于不同包中)中的父引用进行访问。 [A.java][[]]1][1]受保护的范围在包内。即使您有该类的实例,也无法从其他包访问它 Oracle中的作用域表 按惯例,这就是受保护的的定义。仅通过继承来保护子类中的成员。别无选择 假设我们可以使用父类实例访问位于不同包中的子类中的受保护成员 现在,如果成员被声明为public或protected,您将如何区分您的子类?另外,如果可以使用父实例访问它,那么为什么只从子类访问它呢?应该可以使用父类实例从任何

为什么一个包中父类的受保护方法不能使用其子类(位于不同包中)中的父引用进行访问。
[A.java][[]]1][1]

受保护的范围在包内。即使您有该类的实例,也无法从其他包访问它

Oracle中的作用域表


按惯例,这就是
受保护的
的定义。仅通过继承来保护子类中的成员。别无选择

假设我们可以使用父类实例访问位于不同包中的子类中的受保护成员

现在,如果成员被声明为
public
protected
,您将如何区分您的子类?另外,如果可以使用父实例访问它,那么为什么只从子类访问它呢?应该可以使用父类实例从任何地方访问它


我希望,如果你问自己这些问题,一切都会有意义。

看看这个备忘单:
Modifier    Class   Package Subclass    World
public      Y       Y       Y           Y
protected   Y       Y       Y           N
no modifier Y       Y       N           N
private     Y       N       N           N