Narrowing after Widening in Java
<p>Suppose that I hava a <code>String</code> object reference and I assign it to an <code>Object</code> reference.This would implicitly perform <code>widening</code>.</p>

<pre><code>Object o = "Hello World"
</code></pre>

<p>Now we cannot use any <code>String</code> methods on <code>o</code>. My Question is will there be any loss of data because of this typecasting, as in C++ where data would be lost if we cast a <code>float</code> into an <code>int</code>.</p>

<p>If I cast <code>o</code> back to <code>String</code> explicitly will I be able to access the actual <code>String</code>.</p>

<p>There are a lot of methods in Java which has <code>Object</code> type variable as an argument.So I can pass any type of object ref to this argument. Can I convert this object back to the original by narrowing it explicitly?</p>
