【发布时间】:2014-10-09 15:17:08
【问题描述】:
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????
}
}
【问题讨论】:
-
太棒了——感谢大家的回复。那么在这种情况下,您是说我根本无法从 Test 类运行 genOutputSet 吗?
-
另外,签名不匹配。
-
@BiAct - 您好,只是更新您是否要选择答案,以便我们关闭此问题。 :-)
标签: java