Question 91 · 200 in bank
Given the class definitions: class C1 {} class C2 extends C1 {} class C3 extends C2 {} and the code fragment: 16. C1 obj1 = (C1) new C2(); 17. C2 obj2 = (C2) new C3(); 18. C2 obj3 = (C2) new C1(); 19. C3 obj4 = (C3) obj2; Which line throws ClassCastException?
Show answer
Answer: A
Explanation
class CC1 { } class CC2 extends CC1 { } public class CC3 extends CC2 { public static void main(String[] args) { CC1 obj1 = (CC1) new CC2(); CC2 obj2 = (CC2) new CC3(); CC2 obj3 = (CC2) new CC1(); // ClassCastException CC3 obj4 = (CC3) obj2; } } /* Exception in thread "main" java.lang.ClassCastException: class questions.CC1 cannot be cast to class questions.CC2 (questions.CC1 and questions.CC2 are in unnamed module of loader 'app') at questions.CC3.main(CC3.java:18) */ Answer is A
Source: Adapted from community discussion — UAK94


