方法一:问题是
说明受让人资源新问题 - 无用的覆盖方法:覆盖方法只调用super - 覆盖 A.executeImpl
class A {
protected void executeImpl(){
// blah blah
}}
class B extends A{
protected void executeImpl(){
super.executeImpl();
}}
class C{
@Inject B b;
protected void executeCall(){
b.executeImpl();
}
}
如果我删除overriden方法: Java错误: 来自类型B的方法executeImpl()不是 可见
class A {
protected void executeImpl(){
// blah blah
}}
class B extends A{
}
class C{
@Inject B b;
protected void executeCall(){
b.executeImpl();
}
}
我的方法是删除声纳小问题。
答案 0 :(得分:2)
我想说你必须重新考虑你的包结构。我认为A
位于另一个包中,而不是B
和C
。因此C
无法访问A
中的受保护方法,但如果您在B
中覆盖该方法,则C
可以访问该文件。
executeImpl()
中公开A
。 A
,B
和C
全部移至同一个套餐或