java显式类型转换有哪些限制?

d5vmydt9  于 2021-06-30  发布在  Java
关注(0)|答案(1)|浏览(331)

这个问题在这里已经有答案了

classcastexception与“cannot cast”编译错误(6个答案)
上个月关门了。

public class TypeConversion {
    Human human = new Human();
    NonHuman nonHuman = new NonHuman();

    public void test()
    {
        nonHuman = (NonHuman) human; //Cannot cast from Human to NonHuman
    }
}

class Human { }
class NonHuman {}

我希望类型转换至少在编译时作为显式的。并在运行时导致classcastexception或类似的结果。
所以,我想知道编译时类型转换的限制是什么。

30byixjq

30byixjq1#

随机类不能相互转换。
通常允许两种类型的转换将子类对象转换为超类变量(隐式)将超类对象转换为子类变量(显式)
因此,只有当这两个类具有父子关系或子-父关系时,您的案例才会起作用。

相关问题