JAVA对象转换

对象转换:
父类名 变量名 = new 子类名(); //隐式转换
父类:Object; 子类:Student
Object o = new Student(); //Object对象是Student的实例
Student d = o; //编译错误注意:子类对象总是父类对象的实例,但父类对象不一定是子类对象的实例。
//此时o实际上是一个Student对象,但是必须显示转换才能编译通过
Student d = (Student) o; //总是可以将一个子类实例转换为父类变量,叫 向上转换;若将父类实例转换为子类对象,必须进行显式转换,叫向下转换。
显式转换:注意!:为使转换成功,必须确保要转换的对象是子类的一个实例。如果父类对象不是子类一个实例,就会出现异常ClassCastException。

使用操作符instanceof实现确保该对象是另一个对象的实例: 变量名 instanceof 类名。
只有源对象是目标类的实例时才能进行类型转换。执行转换前,使用instanceof操作符确保源对象是否是目标类的实例。
警告:对象成员访问符号"."优先于类型转换操作符。 例如:((Circle)object).getarea();
Object o = new Circle();
Circle c = (Circle)o; //此时引用c和引用o指向同一个对象

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值