Thanks for explanation.
MM
Code: Select all
public class InheritanceTest {
public static void main(String[] args) {
A a = new A();
B b = new B();
// 1. works fine
a = (B) (I) b;
// 2. works fine - why?
b = (B) (I) a;
// 3. won't compile
// a = (I) b;
// 4. exception during runtime
// I i = (C) a;
}
}
interface I {}
class A implements I {}
class B extends A {}
class C extends B {}