我的Java历程_Java对象类型的转换
2024-08-31 11:41:50
向上转型:
可以将子类对象看作是父类对象叫做“向上转型”,由于向上转型是从一个较为具体的类向较为抽象的类的转换,所以它总是安全的。
例如:可以将正方形、长方形叫做是四边形,但是不能说四边形是正方形或长方形。
向下转型:
向下转型可以从向上转型推出,是由子类对象向父类方向上的转型,这样的转型通常是会出问题的,就好比说,你可以说麻雀是鸟类,但是你不能说所有的鸟类都是麻雀,这是非常不符合逻辑的,所以在直接将父类对象赋给子类时会产生编译报错,因为父类对象不一定是子类的实例。
所以在做向下转型时,需要告知编译器,这个父类对象就是子类对象,即强制的将父类对象转换成某个子类对象,这样的转型方式称为向下转型;
例如:
Parent p = new Parent();
Child c = (Chile)p;
但是在程序执行向下转型时,如果父类不是子类对象的实例,就会发生ClassCastException异常,所以在执行向下转型之前应该养成一个好的习惯,就是用instanceof关键字来判断父类对象是否是子类对象的实例,
instanceof语法如下:
myobject instanceof ParentClass
if(p instanceof c){
Child c = (Chile)p;
}else{
//doSomeThing.....
}
最新文章
- 7.openssl enc
- BZOJ2038 小z的袜子
- C结构体中数据的内存对齐问题
- js图片放大镜
- linux 命令小结
- java中接口的定义与实现
- C++运用SDK截屏
- STL 源代码剖析 算法 stl_algo.h -- equal_range
- C语言数据结构----递归的应用(八皇后问题的具体流程)
- Junit4学习(五)Junit4测试套件
- bzoj 3712: [PA2014]Fiolki
- socket.io笔记
- ubus socket always in connecting status
- 避免jquery的click多次绑定方法
- DRF的视图和路由
- nodejs发送http请求
- springmvc 孔浩
- 使用ZBar来读取条形码和二维码的方法
- C#连接EXCEL和ACCESS字符串2003及2007版
- 看github上有18万star的第一开源项目如何教你学前端编程的
热门文章
- Sqlite基本命令集合(linux/fedora/ubuntu)
- Android自定义日历控件(继承系统控件实现)
- TextView 限制最大行数、最小行数、字数超过“...”表示
- dfs___刷题记录
- iOS9 &; Xcode7 下设置LaunchImage启动图片 问题及解决
- C# 正则表达式大全(转载)
- leetcode525. 连续数组 python
- Python笔记25-----------创建二维列表【浅copy】和转置
- Android 开发者必知的开发资源
- 定位前后端bug