假设 X 和 Y 是类,且 Y 扩展 X。另外,令 method(X xObj) 为 X 的方法。为什么下面的代码可以编译?
X xObj = new X();
Y yObj = new Y();
xObj.method(yObj);
此外,是否还有其他类似的情况,其中代码似乎不正确编译?
最佳答案
如果Y
扩展X
,那么,Y
是一个X
。您可以在任何应用程序中(始终如一地)用 X
替换 Y
。
你可以做所有这些奇特的事情:
X object = new Y();
object.method(object)
Y objY = new Y();
object.method(objY);
objY.method(object);
要注意的主要事情是子类是其父类的类型。
关于Java 将对象传递给方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29838641/