Hi Sunil,
I've tried ur hierarchy on jdk1.2.2. With line 2 ur right. It does compile but fails at runtime. But in line 4 you don't even need to explicitly cast ob3 to class B, bcoz class C is a subclass of class B and u can assign it to a ref of its parent class w/o casting. Check out the code below:
--------------------------------------------------------------
interface If1
{
}
class A
{
String s = "Root class";
}
class B extends A
{
String s = "Second class";
}
class C extends B implements If1
{
String s = "Third class";
}
public class castingProblem
{
public static void main(String args[])
{
If1 ob1 = new C();
B ob2 = (B) ob1;
C ob3 = new C();
B ob4 = (B)ob3;//Here you don't need the casting
//But it should still compile.
//Try "B ob4 = ob3" in line 4
//It should compile again
}
}
--------------------------------------------------------------
Can u tell me which jdk ur using?
Cheers,
gokhan