Java 专家,我真诚地感谢任何见解!
我的包中有一个带有受保护方法的抽象类。我在同一个包中还有这个类的子类。现在,当我尝试从包外部的类实例化子类,并在子类实例上调用受保护的方法时,Eclipse 抱怨受保护的方法不可见。
我认为,受保护的方法将对所有子类可见 - 包内或包外 - 只要类可见性不限制它 - 在这种情况下,父类和子类都是公共的。我缺少什么?提前致谢!
package X;
public abstract class Transformation {
protected OutputSet genOutputSet (List list) {
..
}
}
package X;
public class LookupTransformation extends Transformation {
}
package Y;
import X.*;
public class Test {
public static void main(String[] args) {
List<field> fld_list = new ArrayList();
..
LookupTransformation lkpCDC = new LookupTransformation();
OutputSet o = lkpCDC.genOutputSet(fld_list); // Eclipse errors out here saying genOutputSet from the Type Transformation is not visible. WWWWWWWWHHHHHAAAATTTTTT????
}
}
protected
访问手段genOutputSet
可以由从声明它的类继承的类或属于同一包的类调用。这意味着您可以从内部调用它LookupTransformation
.
但是,您试图从不相关的类中调用它 -Test
- 位于不同的包中,这需要public
access.
查看附加说明here http://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)