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

相关推荐
周杰伦_Jay1 分钟前
【Python开发面试题及答案】核心考点+原理解析+实战场景
开发语言·python
前端不太难7 分钟前
RN Hooks 设计规范与反模式清单
开发语言·php·设计规范
HyperAI超神经8 分钟前
【vLLM 学习】vLLM TPU 分析
开发语言·人工智能·python·学习·大语言模型·vllm·gpu编程
爱笑的眼睛1112 分钟前
FastAPI 请求验证:超越 Pydantic 基础,构建企业级验证体系
java·人工智能·python·ai
czlczl2002092515 分钟前
Spring Boot 参数校验进阶:抛弃复杂的 Group 分组,用 @AssertTrue 实现“动态逻辑校验”
java·spring boot·后端
得物技术15 分钟前
Java 设计模式:原理、框架应用与实战全解析|得物技术
java
ForteScarlet18 分钟前
如何解决 Kotlin/Native 在 Windows 下 main 函数的 args 乱码?
开发语言·windows·kotlin
阿拉斯攀登18 分钟前
ThreadLocal 全解析(Spring Boot 实战篇)
java·spring boot·threadlocal
BBB努力学习程序设计20 分钟前
Java模块化系统深度解析:从JAR地狱到JPMS模块化
java
dddaidai12322 分钟前
深入JVM(三):JVM执行引擎
java·jvm