When an object of a subclass is instantiated, super (the superclass's constructor) should be invoked to initialize
the inherited instance variables (which, in turn, calls super (the constructor of its super class), ... ).
If super is invoked, it must be the 1st statement of the constructor. (I don't know why this restriction exists.)
You must refer to the superclass's constructors via super, rather than its class name. (I don't know why this
restriction exists.)
It seems to me that, if the superclass has a finalizer, the subclass's finalizer should invoke it.
The applet below does not illustrate this.
A good example of code reuse is Circle's toString method: It invokes Point's toString method via super.
Java does not guarantee the order in which objects are collected.