有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

通过指定给子对象来继承Java对象声明

我是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吗


共 (1) 个答案

  1. # 1 楼答案

    对象的类型是B,只有在运行时,编译器才知道它的实际类型是B,因为变量object被声明为A类型,所以需要显式向下转换

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