Class A Class B extends A Class C extends BNow, if A defines a default constructor A(), but in B, one omits the default constructor B(){super();}, then in C, calling super(); might be unacceptable sometimes. The situation is explained as this, if B did not overwrite any of the constructors in A, then C inherits the Constructors from A. If B overwrites all of the constructors in A, then C inherits the Constructors from B. If B overwrites some of the Constructors in A, then only those Constructors in B can be inheritated. The rest of constructors in A which are not overwritten by B are invisible by C. This is strange, but this is how java works.
Class B extends A
Class C extends BNow, if A defines a default constructor A(), but in B, one omits the default constructor B(){super();}, then in C, calling super(); might be unacceptable sometimes.
The situation is explained as this, if B did not overwrite any of the constructors in A, then C inherits the Constructors from A. If B overwrites all of the constructors in A, then C inherits the Constructors from B. If B overwrites some of the Constructors in A, then only those Constructors in B can be inheritated. The rest of constructors in A which are not overwritten by B are invisible by C.
This is strange, but this is how java works.