当前位置: 首页 > 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/a/288492.html

相关文章:

  • 基于微信小程序的乡村研学游平台设计与实现,LW+源码+讲解
  • 使用Docker快速部署FastAPI Web应用
  • 【MySQL】MySQL函数之JSON_EXTRACT
  • 常用的Anaconda Prompt命令行指令
  • Java 网络编程(一)—— UDP数据报套接字编程
  • Gurobi学术版+Anaconda安装步骤
  • 【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单片机-第十节-独立按键及数码管优化