According to The Java Language Specification, Java SE 16 Edition (JLS) §9.2 Interface Members:
If an interface has no direct superinterface types, then the interface implicitly declares a
public abstractmember methodmwith signatures, return typer, andthrowsclausetcorresponding to eachpublicinstance methodmwith signatures, return typer, andthrowsclausetdeclared inObject(§4.3.2), unless anabstractmethod with the same signature, same return type, and a compatiblethrowsclause is explicitly declared by the interface.
Why does any top-level Interface “implicitly” declare the public methods of the Object class? What is the purpose of this design?