class Str {}
interface Foo {}
interface Bar {}
class Ideone
{
{
Foo foo = (Foo) s; // Nope. String is definitely not a Foo
Bar bar = (Bar) foo; // Sure. A Foo might be a Bar
}
}
CmNsYXNzIFN0ciB7fQoKaW50ZXJmYWNlIEZvbyB7fQppbnRlcmZhY2UgQmFyIHt9CgpjbGFzcyBJZGVvbmUKewoJcHVibGljIHN0YXRpYyB2b2lkIG1haW4gKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBqYXZhLmxhbmcuRXhjZXB0aW9uCgl7CgkJU3RyaW5nIHMgPSAiIjsKCQkKCQlGb28gZm9vID0gKEZvbykgczsgLy8gTm9wZS4gU3RyaW5nIGlzIGRlZmluaXRlbHkgbm90IGEgRm9vCgkJCgkJQmFyIGJhciA9IChCYXIpIGZvbzsgLy8gU3VyZS4gQSBGb28gbWlnaHQgYmUgYSBCYXIKCX0KfQ==