【发布时间】:2012-08-06 11:28:55
【问题描述】:
有一个名为 demo 的项目,它包含两个包,分别是 aa 和 bb。
在包 aa 中,我有一个公共类 One,它有一个带有 protected 作为修饰符的方法。
现在在另一个包 bb 中,我有一个公共类 2,它想要访问包 aa 类 One 的受保护方法。
请告知如何完成..!
【问题讨论】:
有一个名为 demo 的项目,它包含两个包,分别是 aa 和 bb。
在包 aa 中,我有一个公共类 One,它有一个带有 protected 作为修饰符的方法。
现在在另一个包 bb 中,我有一个公共类 2,它想要访问包 aa 类 One 的受保护方法。
请告知如何完成..!
【问题讨论】:
protected 方法仅在同一个类、同一个包中的类以及扩展它的类中可见
【讨论】:
在继承之前,您不能从另一个包中的类访问受保护的成员/方法。
您有以下选择:
public Class Two extends One【讨论】:
受保护的方法仅在派生类或同一包中的类中可见。
由于受保护的方法位于不同的类中,因此您有两种选择:
public
protected 说明符的类派生使用类:class Two extends One
还有第三种选择,就是在类二中重现受保护的方法。这是不推荐的,而且并不总是可行的——例如,如果方法处理的是类 One 的私有成员。
【讨论】:
Jigar 和 S.L Barth 说的是对的,即它只能从派生类或同一个包中的类访问。
有关更多信息,Java 官方文档非常清楚地说明了方法的可访问性和可见性。
【讨论】: