Suppose that I hava a `String` object reference and I assign it to an `Object` reference.This would implicitly perform `widening`.

```
Object o = "Hello World"

```

Now we cannot use any `String` methods on `o`. 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 `float` into an `int`.

If I cast `o` back to `String` explicitly will I be able to access the actual `String`.

There are a lot of methods in Java which has `Object` 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?