java中的隐式向上转换和显式向下转换

Bre*_*min 7 java inheritance downcast upcasting

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

Jon*_*eet 10

重点是,向上转换将始终成功,因此它是安全的 - 而向下转换可能会失败:

String x = getStringFromSomewhere();
Object y = x; // This will *always* work
Run Code Online (Sandbox Code Playgroud)

但:

Object x = getObjectFromSomewhere();
String y = (String) x; // This might fail with an exception
Run Code Online (Sandbox Code Playgroud)

因为这是一个"危险"的操作,语言迫使你明确地做 - 你基本上是对编译器说"我知道的比你现在做的更多!"