Java 将方法参数中的子类类型传递给超类类型

Java 将方法参数中的子类类型传递给超类类型,java,inheritance,Java,Inheritance,如果我有这个: class A{ } class B extends A{ } class C extends B{ } 那么我可以将C的实例传递给请求a的实例的方法吗?像这样: void aMethod(A anInstanceOfA){ // some code } C anInstanceOfC = new C(); aMethod(anInstanceOfC); 如果没有,有没有办法达到同样的效果 我可以将C的实例传递给请求a的实例的方法吗 是的,你可以。您还可以将类为C的对象

如果我有这个:

class A{
}

class B extends A{
}

class C extends B{
}
那么我可以将C的实例传递给请求a的实例的方法吗?像这样:

void aMethod(A anInstanceOfA){
// some code
}

C anInstanceOfC = new C();
aMethod(anInstanceOfC);
如果没有,有没有办法达到同样的效果

我可以将C的实例传递给请求a的实例的方法吗


是的,你可以。您还可以将类为
C
的对象指定给声明为
a
类型的变量。实际上,
C
的实例是
A
的实例(但并非所有
A
的实例都是
C
)。

是的,您可以在需要A实例的任何时候使用C实例。这包括将其传递给需要A参数的方法。为什么不简单地测试它呢?如果您的机器上没有安装Java,您可以使用在线编译器,就像您可以将
A
的任何子类型传递到
aMethod()
,顺便说一句,您可以轻松地在线测试此功能,或者在某种情况下,我甚至在读完标题之前就已经感到困惑了……请阅读指南。