1 instanceof
instanceof: 关键字 运算符——判断对象是否属于指定类型
// ( arr[i] instanceof Zi011 )
向上转型 : 通过子类对象(小范围)实例化父类对象(大范围), 这种属于自动转换
向下转型 : 通过父类对象(大范围)实例化子类对象(小范围), 这种属于强制转换
// Zi011 z1 = (Zi011) arr[i];
class Fu01 {
int a = 11;}
class Zi011 extends Fu01 {
int b = 12;}
class Zi012 extends Fu01 {
int c = 13;}
public class Demo01Instanceof {
private static Fu01[] getArr() {
Fu01[] arr = new Fu01[3];
arr[0] = new Fu01();
arr[1] = new Zi011();
arr[2] = new Zi012();
return arr;
}
public static void main(String[] args) {
Fu01[] arr = getArr();
for (int i = 0; i < arr.length; i++) {
//System.out.println("arr[" + i + "].a=" + arr[i].a);
//判断对象的本质类型
if (arr[i] instanceof Zi011) {
Zi011 z1 = (Zi011) arr[i];//向下转型:把多态对象打回原型
System.out.println("arr[" + i + "].b="