什么时候可以将某个对象转换为另一个对象?被转换的对象是否必须是另一个对象的子类型?我正在尝试找出规则...
编辑:我意识到我根本没有解释我的问题:基本上我是在将对象转换为接口(interface)类型。但是,在运行时,我得到一个 java.lang.ClassCastException
。我的对象需要做什么才能将它转换到这个接口(interface)?它必须实现吗?
谢谢
最佳答案
在Java中有两种类型的引用变量转换:
向下转换:如果您有引用 引用子类型的变量 对象,您可以将其分配给 子类型的引用变量。 您必须进行明确的类型转换才能做 这个,结果是你可以 访问子类型的成员 这个新的引用变量。
向上转换:您可以指定引用 父类(super class)型引用的变量 显式或隐式变量。 这是一个本质上安全的操作 因为分配限制了 新的访问能力 变量。
是的,您需要直接或间接实现接口(interface),以便将您的类对象引用分配给接口(interface)类型。
关于用于强制转换的 Java 规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2233902/