我是 java 新手,在 Casting 上有一些问题。我有一个类叫Parent,还有一个类叫Children,Children 类是Parent 的子类。
public class Parent
{
int age;
String occupation;
public void print()
{
System.out.println("My age is:"+ age + "and i am a:" + occupation);
}
}
public class Children extends Parent
{
int height;
public static void main(String args[])
{
Children c = new Children();
Parent p = new Parent();
p=c;
c=(Children) p;
/**Here***/
}
}
我的问题是,当我在选角后添加 p.XXX 时,我只能看到可以访问的年龄和职业,例如 p。当我做 c.xxx 时,我可以看到所有年龄、职业和身高。我想当我做 p=c 时,p 现在被认为是子类的一个实例,不是吗?如果是,那么为什么我没有看到可访问的高度整数?当我执行 c=(Children)p 时,Parent 类的一个实例被分配给 Children 类的一个实例,并且由于 Parent 实例没有选项,这就是为什么我们要进行从父级到子级的强制转换,对吗?