gpt4 book ai didi

java - 制作对象时向上转换

转载 作者:搜寻专家 更新时间:2023-10-31 19:58:20 25 4
gpt4 key购买 nike

假设您有一个 Shape 基类和各种派生类型:Circle 等。

在创建新对象时,是否有任何理由在此处进行向上转换,方法是这样写:

Shape s = new Circle();

而不是这个:

Circle s = new Circle();

这两个语句所生成的对象是否有任何不同?

最佳答案

就 JVM 而言,这两个语句将生成相同的对象。表明您只打算将对象用于基类或接口(interface)的情况并不少见。例如。这很常见:

List<String> list = new ArrayList<String>();

虽然通常不是一个好主意,但您可以将 Shape 转换回 Circle 如果您确定它是一个,例如使用 Shape s 你可以把它变回一个 Circle c 用:

if (s instanceof Circle) {
Circle c = (Circle) s;
// handle Circle case
}

关于java - 制作对象时向上转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5470006/

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