gpt4 book ai didi

java - 方法返回的对象是什么类型?

转载 作者:行者123 更新时间:2023-11-30 07:35:28 25 4
gpt4 key购买 nike

我知道当将对象作为参数传递时,我实际上传递的是该对象的副本,但在这种情况下会发生什么:

public Base myMethod ()
{
Derived d = new Derived();
return (Base) d;
}

Base b = myMethod();

b 对象是 Base 类型的新对象,还是指向分配在 myMethod 堆中的向下转型派生对象的指针?

最佳答案

首先,你错了:在 Java 中,当传递一个对象作为参数时,你实际上传递了一个引用的副本,(就像在 C 或 C++ 中传递一个指针),所以对象本身永远不会被复制。复制确实发生在基本类型上,例如 int 或 boolean。

在您的示例中,只分配了一个对象:d,并且假设 Derived 继承自 Base,该对象被向上转换为 Base 类型。事实上,转换是多余的,因为向上转换在 Java 中是隐式的。

根据经验,只需寻找 new 关键字:如果它在那里,您将创建一个新对象。否则,您只是在引用现有对象。

关于java - 方法返回的对象是什么类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4422998/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com