I was wrong about this – this is not an error, and the gist I provided
was not relevant, as it illustrated the implementation of an interface
and not a subclass. Sorry about that.
I did actually have a problem subclassing a Java class with no
arguments, but it was due to my misunderstanding. What confused me was
that I thought it was always true that a function call with no arguments
never needs parentheses; that is, that “foo” and “foo()” were
interchangeable. This is not true with super, since without the parens
it will assume that it’s passing the same arguments that were passed to
it (I think…is this correct?). It didn’t occur to me until much
later (um, today) to try super(). So super is a special case.
The example below illustrates it.
class RubyLabel < JLabel
super # doesn’t work; passes all arguments
super() # does work; passes no arguments
super(‘text’) # does work; one of superclass JLabel’s ctor’s takes
a string arg
# omitting super behaves as if it were called without