对象造型

对象造型
      在多态的情况下,由于对象以其父类的身份出现,对子类中新添加成员的访问受到限制,有时我们可能需要恢复一个对象的本来面目—造型(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)
                         …
      }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值