Guys,
The question below is from
here Suppose we have two classes defined as follows:
class Base extends Object implements Runnable
class Derived extends Base implements Observer
Given 2 variables created as follows:
Base base = new Base();
Derived derived = new Derived();
Which of the
Java code fragments will compile and execute without errors?
1. Object obj = base;
Runnable run = obj;
2. Object obj = base;
Runnable run = (Runnable) obj;
3. Object obj = base;
Observer ob = (Observer) base;
4. Object obj = derived;
Observer ob2 = obj;
Answer:
2
Why can't 3 also be the correct option?? Why it gives a ClassCastException??
Thanks in advance.