Stuart James wrote:This() calls the default constructor on the sub class. . . .
Not quite. It calls the no-arguments constructor in the same class (House). Because you have defined a constructor, there is no default constructor. Since there is no explicit
super(...) call in that no-arguments constructor, the JVM calls the no-arguments constructor in the superclass.
And I see Jesper has beaten me to it.