gpt4 book ai didi

java - 父类(super class)引用变量所持有的引用的类型是什么?

转载 作者:行者123 更新时间:2023-12-01 18:00:44 25 4
gpt4 key购买 nike

假设我定义了两个类,SuperSub,并且 SubSuper 的子类:

public class Super {}
public class Sub extends Super {}

我知道执行以下操作是合法的:

Super s = new Sub();

我的问题是,编译器认为 s 中保存的引用是什么?它是否认为它只是一个 Super 类型的引用,或者它是否知道它实际上是一个 Sub 类型的引用。我四处寻找类似问题的一些答案,但没有找到任何真正确定的答案。谢谢!

最佳答案

出于警告消息的目的,编译器可能“知道”您有一个 Sub 实例(因此,如果它发现您将其转换为其他类型,或者不必要地检查,它可能会警告您如果为 null),但就语言允许和禁止的内容而言,该变量的类型仅为 Super

(但是在运行时,当然,Java 虚拟机会知道该实例具有运行时类型 Sub。)

关于java - 父类(super class)引用变量所持有的引用的类型是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41170466/

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