2016-03-09 85 views

回答

0

保护范围在包内。即使你有一个类的实例,你也无法从另一个包中访问它。从Oracle documentation

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 
0

范围表按照惯例 - 这就是protected定义做。子类中的受保护成员只能通过继承。别无退路。

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

现在,你将如何区分你的孩子 - 如果成员被宣布为publicprotected?另外,如果它可以使用父实例访问,那么为什么只从子类访问它?它应该可以在任何地方使用父类实例进行访问。

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

相关问题