子类数组访问父类元素:1. 如果声明类型为父类,可直接访问父类元素;2. 如果声明类型为子类,需要向上转型为父类才能访问父类元素。

如何使用父类数组访问 Java 子类
直接访问
- 如果子类数组的声明类型为父类类型,则可以直接访问数组中的父类元素。
- 例如:
<code class="java">class ParentClass {
int x;
}
class ChildClass extends ParentClass {
int y;
}
ParentClass[] parentArr = new ParentClass[2];
parentArr[0] = new ChildClass();
parentArr[1] = new ChildClass();
// 直接访问父类元素
System.out.println(parentArr[0].x);</code>向上转型
- 如果子类数组的声明类型为子类类型,则需要将数组元素向上转型为父类类型才能访问父类元素。
- 使用
instanceof运算符检查元素类型,然后使用强制转换操作符(ParentClass)。 - 例如:
<code class="java">ChildClass[] childArr = new ChildClass[2];
childArr[0] = new ChildClass();
childArr[1] = new ChildClass();
// 向上转型并访问父类元素
for (ChildClass child : childArr) {
if (child instanceof ParentClass) {
ParentClass parent = (ParentClass) child;
System.out.println(parent.x);
}
}</code>其他注意事项
立即学习“Java免费学习笔记(深入)”;
- 访问数组中父类元素时,只能访问父类成员,不能访问子类特有的成员。
- 对于基本类型数组,可以使用自动装箱和拆箱进行向上转型和向下转型。






