The superclass ctor is always invoked (except in the case of the class Object

). If you don't invoke one explicitely then the default no-arg ctor of the superclass will be invoked.
The actual object you create (here SubClass) is the one whose ctor is invoked first. In this case, we don't have any ctor taking a
String as argument in SubClass, hence the error.
Moreover, the ctor is not invoked by the compiler but by the interpreter at runtime. The compiler just makes sure that it will be possible at runtime for the interpreter to invoke the ctor by investigating if the ctor the programmer has written effectively exists. In clear, the compiler looks in SubClass if there exists a ctor taking a String argument. Well, it doesn't, so let's choke!
HIH
[ January 29, 2002: Message edited by: Valentin Crettaz ]