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

相关推荐
float_六七9 分钟前
SQL中的NULL陷阱:为何=永远查不到空值
java·前端·sql
@木辛梓22 分钟前
指针,数组,变量
开发语言·c++·算法
漠然&&32 分钟前
实战案例:用 Guava ImmutableList 优化缓存查询系统,解决多线程数据篡改与内存浪费问题
java·开发语言·缓存·guava
前端小张同学33 分钟前
基础需求就用AI写代码,你会焦虑吗?
java·前端·后端
yqsnjps74658ocz34 分钟前
如何在Visual Studio中设置项目为C++14?
java·c++·visual studio
buvsvdp50059ac35 分钟前
如何在Visual Studio中启用C++14的特性?
java·c++·visual studio
狼爷1 小时前
如何防止重复提交订单?——从踩坑到优雅落地的实战指南
java·架构
zhangkaixuan4561 小时前
Flink 写入 Paimon 流程:Checkpoint 与 Commit 深度剖析
java·开发语言·微服务·flink·paimon
爱吃程序猿的喵1 小时前
Spring Boot 常用注解全面解析:提升开发效率的利器
java·spring boot·后端
Tracy-221 小时前
广东专升本计算机C语言
c语言·开发语言