对象造型
在多态的情况下,由于对象以其父类的身份出现,对子类中新添加成员的访问受到限制,有时我们可能需要恢复一个对象的本来面目—造型(Casting),以发挥其全部潜力。
例5.9 多态性示例4。
Public class Test{
public void cast(Person p){
//System.out.println(p.getSchool()); 非法
Student st=(Student)p; //造型
System.out.println(st.getSchool()); //正确
}
}
运算符instanceof用于检测一个对象的真正类型。
格式:<变量名> instanceof <类型>
功能:如果instanceof操作符左侧的变量当前时刻所引用对象的真正类型是其右侧给出的类型、或是其子类,则整个表达式结果为true,否则结果为false。
例5.10 多态性示例5。在Test类中的cast方法可改写为:
public void cast(Person p){
if(p instanceof Graduate)
...
else if(p instanceof Student)
…
}
对象造型
最新推荐文章于 2020-07-22 23:35:37 发布