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

时间:2015-12-28 17:12:24

标签: 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);

如果没有,有没有办法达到同样的效果?

1 个答案:

答案 0 :(得分:0)

  

我可以将C的实例传递给要求A?

实例的方法

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