Java 扩展vs在子类中实现可见性

Java 扩展vs在子类中实现可见性,java,jmockit,Java,Jmockit,当D的实例调用doSomething()方法时,也可以进行编译 但当从D实例调用该方法且该方法未在D中重写时,jmockit会给出错误。请解释此行为。找到了解决方案。我没有提到的是我们使用的是jmockit版本1.30,因为我认为这不是问题所在。这个问题在更高版本中得到了适当的解决 相关。我认为您应该包含足够的代码来重现错误。这是完全合法的java,所以问题更多的是关于jmockit是如何工作的。界面A显示“嘿D,您需要doSomething方法”。但是它有,因为它是从提供实现的B扩展而来的。而

当D的实例调用doSomething()方法时,也可以进行编译


但当从D实例调用该方法且该方法未在D中重写时,jmockit会给出错误。请解释此行为。

找到了解决方案。我没有提到的是我们使用的是jmockit版本1.30,因为我认为这不是问题所在。这个问题在更高版本中得到了适当的解决


相关。我认为您应该包含足够的代码来重现错误。这是完全合法的java,所以问题更多的是关于jmockit是如何工作的。界面
A
显示“嘿
D
,您需要
doSomething
方法”。但是它有,因为它是从提供实现的
B
扩展而来的。而且这与泛型无关,所以您可以删除该标记。在我们的实现中,它是与泛型相关的。。。这就是为什么我包括这个标签。那么,当抽象类和接口使用泛型时,会有什么不同吗?
public interface A{
  public void doSomething();
}

public abstract class B{
  public void doSomething(){
    //implementation...
    }
  }

public abstract class C extends B implements A{
}

public class D extends C{
... //doSomething() is not overriden 
}