9

当java可以隐式进行向上转换时,为什么它不隐式进行向下转换?请用一些简单的例子解释一下?

4

1 回答 1

15

关键是向上转换总是会成功,所以它是安全的 - 而向下转换可能会失败:

String x = getStringFromSomewhere();
Object y = x; // This will *always* work

但:

Object x = getObjectFromSomewhere();
String y = (String) x; // This might fail with an exception

因为这是一个“危险”的操作,语言会强制你明确地去做——你基本上是在对编译器说“我现在比你知道的多!”

于 2014-04-13T11:37:12.347 回答