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

相关推荐
风无雨4 分钟前
GO 启动 简单服务
开发语言·后端·golang
Hellyc5 分钟前
用户查询优惠券之缓存击穿
java·redis·缓存
斯普信专业组10 分钟前
Go语言包管理完全指南:从基础到最佳实践
开发语言·后端·golang
今天又在摸鱼32 分钟前
Maven
java·maven
老马啸西风35 分钟前
maven 发布到中央仓库常用脚本-02
java·maven
代码的余温35 分钟前
MyBatis集成Logback日志全攻略
java·tomcat·mybatis·logback
我是苏苏2 小时前
C#基础:Winform桌面开发中窗体之间的数据传递
开发语言·c#
一只叫煤球的猫2 小时前
【🤣离谱整活】我写了一篇程序员掉进 Java 异世界的短篇小说
java·后端·程序员
斐波娜娜2 小时前
Maven详解
java·开发语言·maven
Bug退退退1232 小时前
RabbitMQ 高级特性之事务
java·分布式·spring·rabbitmq