当前位置: 首页 > article >正文

《从C/C++到Java入门指南》- 23.关键字及其新特性

关键字及其新特性

因为将父类转型成子类后会得到一个ClassCastException报错。所以向下转型前要养成一个好的习惯,那就是判断父类对象是否为子类对象的实例。

class Father {
}
class Child extends Father {
}


public class Main {
	 public static void main(String args[]) {
		 var father = new Father();
		 System.out.println(father instanceof Father);
		 System.out.println(father instanceof Child);
	 }
}

在这里就是判断了对象是否是用某个类来实例化的。

true
false

向上转型后会如何呢?

class Father {
}
class Child extends Father {
}


public class Main {
	 public static void main(String args[]) {
		 Father father = new Father();
		 Child child = new Child();
		 father = child;
		 System.out.println(father instanceof Father);
		 System.out.println(father instanceof Child);
		 System.out.println(child instanceof Child);
		 System.out.println(child instanceof Child);
	 }
}

true
true
true
true

可以看出,子类生成的对象会同时被判定为子类和父类的实例化。


http://www.kler.cn/news/288492.html

相关文章:

  • 【PyTorch】安装,环境搭建
  • 【Netty】实战:基于Http的Web服务器
  • 数据分析及应用:如何分析基于绝对中位差的异常值检测问题?
  • LINUX网络编程:Tcpsocket封装
  • Java GC机制:Minor GC与Full GC的触发条件
  • 假期作业--数据结构
  • uniapp插槽用法
  • vue子组件样式影响父组件
  • 每天一个数据分析题(五百一十六)- 贝叶斯分类算法
  • Axure打造科技感数据可视化大屏原型
  • 网络安全宗旨和目标
  • OpenCV颜色空间转换(1)颜色空间转换函数cvtColor()的使用
  • 【论文阅读】skill code 和 one-shot manipulate
  • C++ 设计模式——职责链模式
  • Go父类调用子类方法(虚函数调用)
  • stm32之I2C通信外设
  • 提升RAG检索回答质量: Shortwave的 4 大优化指南
  • 使用 Milvus Lite、Llama3 和 LlamaIndex 搭建 RAG 应用
  • 住宅IP与机房IP:哪种更适合业务应用?
  • 51单片机-第十节-独立按键及数码管优化
  • shell脚本—————局域网IP扫描
  • 开放式耳机漏音有多大?五大超值爆款推荐!
  • 【数据可视化技术】使用Matplotlib、Seaborn进行数据可视化
  • 9、Django Admin优化查询
  • 【2025考研英语高分写作:写作核心词汇】三、人生哲理类
  • Django中的第一个自动化测试编写
  • VS Code CMake tool 配置
  • Apple LLM: 智能基础语言模型(AFM)
  • Apache Struts2开发模式漏洞解析与修复
  • 温湿度传感器和IOT网关的连接 485接口