通过指定给子对象来继承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 楼答案
对象的类型是
B
,只有在运行时,编译器才知道它的实际类型是B,因为变量object
被声明为A
类型,所以需要显式向下转换