class A{} class B extends A implements E{}//line 1 class C extends A{} class D extends B{} interface E{} public class Question07 { public static void main(String[] args) { A a = new D();//line 2 C c = new C();//line 3 E e = (E)a;//line 4 B b = (B)e;//line 5 } } Why it allows type conversion on line 4???