constructor question

The answer for the following question is B and C, I couldn't understand the answer E. Pls explain to me.

Thanks, Raghu/K -------------------------------------------------

class A{ public A(){} public A(int i) { this();} } class B extends A{ public boolean B(Stringmsg){return false;} } class C extends B{ private C() { super() } public C(String msg) {this();} public C(int i){} } --------------------------------------- A. The code will fail to compile. B. The constructor in A that takes an int as an argument will never be called as a result of constructing an object of class B of C. C. Class C define three constructors. D. Objects of class B cannot be constructed. E. At most one of the construcotrs of each class is called as a result of constucting an object of class.

A class can have overloaded constructors, as illustrated here in classes A and C. A constructor can call another constructor of the same class using the keyword this along with the appropriate arguments. (Note: You don't want to call another constructor by name, because then you would be creating another object.)

In this example, the class A constructor taking an int argument calls the overloaded no-args constructor.

So option E ("at most one of the constructors of each class is called...") is false, because calling A(int i) results in A() also being called, and calling C(String msg) results in C() also being called.

"We're kind of on the level of crossword puzzle writers... And no one ever goes to them and gives them an award." ~Joe Strummersscce.org