We have Constructors in Java which are analogous to Constructors in C++ which would create the object by automatically chaining(Consirering default non parameterized constructors) its constructors from base class to object being constructed.
Now we have finalizers in java which would be same as destructors in C++. And C++ chains its destructors from most derived class to the base class automatically.
Why Java specification designers kept the call to base class finalizer responsibility of programmers when the could have easily defined the specification for the same so that we would have less programmer headaque for explicitely calling base class finalizers.