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示例来说明您的问题,以便提供帮助。问题是,我没有导入正确的付款。该死的“组织进口”。