gpt4 book ai didi

通过分配给子对象来声明 Java 对象

转载 作者:行者123 更新时间:2023-12-01 10:05:50 27 4
gpt4 key购买 nike

我是 Java 新手,我无法理解一件事:

当我通过分配给子对象(类扩展对象)来声明对象时,它无权访问子对象属性。这是为什么?

假设我有这个:

public class A {
public int a;
}

public class B extends A {
public int b;
}

当我创建这样的 B 对象时:

A object = new B();

我无权访问object.b

我被迫这样声明

B object = new B();

我的对象不是应该是第一种方式的 B 吗?

最佳答案

该对象的类型为 B仅在运行时、编译时,编译器不会认为其实际类型是 B,因为变量 object声明为 A 类型,需要显式向下转型

A object = new B();
B b = (B)object;
int x = b.b;

关于通过分配给子对象来声明 Java 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36486707/

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