【发布时间】:2014-04-13 11:35:14
【问题描述】:
当java可以隐式进行向上转换时,为什么它不能隐式进行向下转换?请用一些简单的例子解释一下?
【问题讨论】:
-
会更好,这里给出一些示例类
-
@KugathasanAbimaran ,我问了一个不针对某些示例的一般性问题
标签: java inheritance downcast upcasting
当java可以隐式进行向上转换时,为什么它不能隐式进行向下转换?请用一些简单的例子解释一下?
【问题讨论】:
标签: java inheritance downcast upcasting
关键是向上转换总是会成功,所以它是安全的 - 而向下转换可能会失败:
String x = getStringFromSomewhere();
Object y = x; // This will *always* work
但是:
Object x = getObjectFromSomewhere();
String y = (String) x; // This might fail with an exception
因为这是一个“危险”的操作,语言会强制你明确地去做——你基本上是在对编译器说“我现在比你知道的多!”
【讨论】: