Java--instanceof和类型转换

1.如图,Object,Person,Teacher,Student四类的关系已经写出来了,由于实例化的是Student类,因此,与Student类存在关系的类在使用instanceof时都会输出True,而无关的都会输出False,如图对Student实例化的是Object类,输出分别为True,True,True,False,False;

2.对于对Student实例化的Person类,由于Person类与String类没有关系,因此第五行直接报错,而因为Person类与Teacher类有关,因此编译通过,但Student类与Teacher类无关,因此输出为False,因此输出结果为True,True,True,False

3.总结:System.out.println(x instanceof y);编译能否通过,看x与y是否有关系,但通过后输出True或者False则跟x实例化的对象类型是否与y有父子关系,没有则输出False,有则输出True

4.如图,父类Perosn定义了run方法,子类Student定义了go方法,首先对Student类进行实例化,由于实例化的类型是Student类,因此可直接调用go方法,后者由Person实例化的Student类,因go方法是Student仅有的方法,因此父类Person无法直接调用go方法

5.如上图所问,因person的类型为Person类,由于Person是父类,类型比Student类高,高类型转换至低类型需通过强制转换,如图所示,转化为Student类后可调用Student类的go方法输出go

相关推荐
可乐鸡翅yeah_4 分钟前
HLS流媒体首屏起播慢深度优化,从分片、索引、播放器全链路调优
开发语言·javascript·ecmascript·m3u8·m3u8在线
luj_17686 分钟前
生物体如何应对功能击穿?
c语言·开发语言·c++·经验分享·算法
luj_17689 分钟前
击穿分析五大关键步骤
开发语言·网络·c++·经验分享·算法
wuyk55510 分钟前
从零吃透 MQTT 通信|第 11 章 MQTT 项目调试验证、性能优化、常见疑难问题、OTA 升级基础
c语言·开发语言·stm32·学习·性能优化
步行cgn14 分钟前
Spring 注入 Properties 详解
java·python·spring
海盗123414 分钟前
微软技术日报 2026-09-14:Rust 升为微软一级语言,云业务重组为智能体与基础设施
开发语言·microsoft·rust
星空15 分钟前
Map<String, String>`Map`是接口,不能直接 new
java·前端·算法
liangbo715 分钟前
12-JVM 调优方法论与参数速查
java·jvm
干到60岁退休的码农17 分钟前
16.过滤器中处理异常响应返回
java·spring boot·mybatis
Java_2017_csdn29 分钟前
StringUtils.hasText() 和 StringUtils.isNotBlank() 方法对比
java