Java方法在一种情况下正确地看待继承,但在另一种情况下却不正确,什么';罪魁祸首是谁?

Java方法在一种情况下正确地看待继承,但在另一种情况下却不正确,什么';罪魁祸首是谁?,java,inheritance,polymorphism,Java,Inheritance,Polymorphism,找不到方法看不到继承的原因。我错过了什么 public class Rate extends BaseResource public class GenericQuote extends BaseResource public class Payment extends GenericQuote public void handleMediationErrors(BaseResource response) handleMediationErrors(myRate)您给出的示例没有问题-可能

找不到方法看不到继承的原因。我错过了什么

public class Rate extends BaseResource
public class GenericQuote extends BaseResource
public class Payment extends GenericQuote

public void handleMediationErrors(BaseResource response)

handleMediationErrors(myRate)
您给出的示例没有问题-可能您在其中一个类中使用了不同的
BaseResource
(导入不同的类或在别处单独声明它-这可能会引起混淆!)

为了证明这一点,此示例完美地编译了:

class BaseResource {}
class Rate extends BaseResource {}
class GenericQuote extends BaseResource {}
class Payment extends GenericQuote {}

public class Test {

    public void handleMediationErrors(BaseResource response) {}

    public static void main(String[] args) {
        new Test().handleMediationErrors(new Payment());
        new Test().handleMediationErrors(new Rate());
        new Test().handleMediationErrors(new GenericQuote());
        new Test().handleMediationErrors(new Payment());
    }
}

他们是否扩展了相同的
BaseResource
?我猜你错过了一些重要的东西。这种情况可能发生在泛型中,但在您给出的示例中不会发生。请给出一个。投票关闭。如果没有SSCE,这个问题是无法回答的。是的,那就行了。尝试调用Payment MyPayment我认为这与super.super.method()之类的调用问题有关。正如所演示的,调用问题仍然可以按预期处理付款。我想我们需要看一个SSCCE示例来说明您的问题,以便提供帮助。问题是,我没有导入正确的付款。该死的“组织进口”。