您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

为什么向下转换会引发异常?

为什么向下转换会引发异常?

让我重命名您的班级,以使事情更加清楚。 Base-> AnimalDerived-> Cat

仅仅因为你是一个Animal人并不意味着你是一个Cat。你可能是一个Dog。这就是将A强制Animal转换为A的原因Cat

另一方面,每个CatAnimal吗?答案是“是”。这就是为什么您 可以 编写如下代码

Animal animal = new Cat();

要么

Cat cat = new Cat();
Animal animal = cat;

另外值得注意的是,您 可以 执行以下操作:

Animal animal = new Cat();
Cat cat = (Cat) animal;

这样做的原因是您的animal变量实际上是在引用Cat实例。因此,您可以将其强制转换回引用的变量Cat

其他 2022/1/1 18:33:24 有539人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶