Java は暗黙的にアップ キャストを実行できるのに、なぜ暗黙的にダウン キャストを実行しないのですか?簡単な例で説明してください。
5373 次
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 に答える