Answer:
If we analyze the given piece of code, C1, C2, C3 and C4 are 4 classes.
- C1 is the base class and does not derive from any other class.
- C2 is a class which inherits C1.
- C3 is a class which inherits C2 and indirectly inherits from C1.
- C4 is a class which inherits C1 directly. If analyses the instance creation statement,
c1 instance of C1 is valid because the object is created for class C1.
c1 c2 = new C2() is valid once again the object is created for Class C2
c1 c3 = new C3() is invalid because the class C3 directly inherits from C2 and not from C1
c1 c4 = new C4() is valid