Java中对象转型

编程入门 行业动态 更新时间:2024-10-28 00:15:54

Java中<a href=https://www.elefans.com/category/jswz/34/1771306.html style=对象转型"/>

Java中对象转型

理解:

有一个对象 new ADHero(), 同时也有一个引用ad
对象是有类型的, 是ADHero
引用也是有类型的,是ADHero 

一般来说引用类型和对象类型是一样的,当引用类型和对象类型不一致就要考虑类型转换

简单判断:把右边的当做左边来用,看说得通不

向上转型

将子类转换为父类,因为子类包含于父类,所以说得通

类转换成接口

向下转型

慎重判断,如果没有继承关系一定会失败

接口也有可能失败,主要其实看接口的继承关系

package charactor;public class Hero {public String name; protected float hp;public static void main(String[] args) {ADHero ad = new ADHero();AD adi = ad;ADHero adHero = (ADHero) adi;ADAPHero adapHero = (ADAPHero) adi;adapHero.magicAttack();}}

10行: ad引用指向ADHero, 而adi引用是接口类型:AD,实现类转换为接口,是向上转型,所以无需强制转换,并且一定能成功
12行: adi实际上是指向一个ADHero的,所以能够转换成功
14行: adi引用所指向的对象是一个ADHero,要转换为ADAPHero就会失败。

假设能够转换成功,那么就可以使用magicAttack方法,而adi引用所指向的对象ADHero是没有magicAttack方法的 

 instanceof

instanceof Hero 判断一个引用所指向的对象,是否是Hero类型,或者Hero的子类

更多推荐

Java中对象转型

本文发布于:2023-11-15 20:49:33,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1606118.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:对象   Java

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!