java - 为什么我们需要向上转换或向下转换 Java 中的任何对象?用例子告诉我实时使用
问题描述
我需要了解向上转换和向下转换对象背后的原因,我知道该怎么做,但我仍然很困惑为什么我们需要这样做,你能告诉我实时使用吗?
我知道向上转换和向下转换的基本知识,但无法理解原因。
解决方案
举一个实际的例子,考虑类java.io.ByteArrayOutputStream
。它实现java.io.InputStream
并具有一些附加方法,例如toByteArray()
返回字节数组的方法。
所以如果你有一个输出流
OutputStream os = ...
而且您确定它是 ByteArrayOutputStream,您可以对其进行强制转换并使用特定于该类的方法,如下所示。
byte[] bytes = ((ByteArrayOutputStream) os).toByteArray();
推荐阅读
- docker - 如何通过dockerfile创建非root账户的文件和文件夹
- c++ - 递归函数 C++
- android - 如何在 LaunchedEffect 中使用 LocalContext?
- haskell - (fmap.fmap) func 与 fmap (fmap func) 的返回类型
- java - Android:如何停止所有媒体播放器
- django - 如何使用更新函数在嵌套序列化程序 Django 中添加或删除对象
- loss - 我已经为类平衡损失编码
- firebase - 如何在 Flutter 中从 Firebase 调用 Cloud Function?
- python - 打开具有特定扩展名的文件,无论名称如何
- rich-text-editor - 如何在grapesjs的默认富文本编辑器上添加颜色选择器来更改字体颜色?