用于强制转换的 Java 规则

标签 java casting object

什么时候可以将某个对象转换为另一个对象?被转换的对象是否必须是另一个对象的子类型?我正在尝试找出规则...

编辑:我意识到我根本没有解释我的问题:基本上我是在将对象转换为接口(interface)类型。但是,在运行时,我得到一个 java.lang.ClassCastException。我的对象需要做什么才能将它转换到这个接口(interface)?它必须实现吗?

谢谢

最佳答案

在Java中有两种类型的引用变量转换:

  • 向下转换:如果您有引用 引用子类型的变量 对象,您可以将其分配给 子类型的引用变量。 您必须进行明确的类型转换才能做 这个,结果是你可以 访问子类型的成员 这个新的引用变量。

  • 向上转换:您可以指定引用 父类(super class)型引用的变量 显式或隐式变量。 这是一个本质上安全的操作 因为分配限制了 新的访问能力 变量。

是的,您需要直接或间接实现接口(interface),以便将您的类对象引用分配给接口(interface)类型。

关于用于强制转换的 Java 规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2233902/

相关文章:

c# - Java 是编写音乐 DAW(数字音频工作站)的现实选择吗

java - 当 imageview 的宽度使用 dp 单位时,Android 属性动画不起作用

java - 在 Java 中将对象转换为数组

python - 数字是否被视为 python 中的对象?

java - Apache Camel OSGi 容器由 Java DSL 配置?

java - 检查 Freemarker 模板是否存在常见错误的有效方法是什么?

casting - 如何调整 LISTAGG 以在选择查询中支持超过 4000 个字符?

c - 如何在c中通过串口连接编写二进制表示

javascript - 'this' 不等于原型(prototype)中的 Bar

使用 "this"的 JavaScript 对象