问题
在上面的例子中,我们发现,父类的引用,有时不能调用子类的方法,也不能访问子类的成员变量,为了解决此问题,可以用 向下转型
定义
把引用类型 转换为子类类型,则称为向下转型
Java允许 直接 或 间接 继承 关系的类之间进行 类型转换。对于向下转型,必须进行强制类型转换;对于向上转型,不必使用强制类型转换。
格式
子类名称 对象名=(子类名称)父类对象名;
例子
class Wangjianlin{
double money=1000;
}
class Wangsicong extends Wangjianlin{
double money=500;
int gfnum=2;
}
测试:
Wangjianlin wang=new Wangsicong();
Wangsicong wsc=(Wangsicong)wang;
System.out.println(wsc.money);
System.out.println(wsc.gfnum);
执行结果:
500
2
注意:父类对象名 ,必须指向子类
例子
class Wangjianlin{
}
class Wangsicong extends Wangjianlin{
}
class Wangxiaocong extends Wangjianlin{
}
测试:
Wangjianlin wang=new Wangsicong();
Wangxiaocong wsc=(Wangxiaocong)wang;//报错,因为wang指向的是Wangsicong的对象