According to the Java API for the Math class, Math extends the Object class:
public final class Math extends Object
However, Math does not inherit Object’s methods, and you also cannot construct a Math object (EDIT: this statement is false and partly false; see below).
My question is then why is this done? If it is an object, then it should have the bare-bones methods from Object. If it is not an object, then I feel like it should not be extending Object.
And, assuming there is a good reason for extending Object, how is it done? In other words, how are the inherited methods and constructor suppressed?
Math is the foremost example in my mind of this kind of static definition class (I guess you’d call it that?), but this question may also apply to classes that have a similar purpose.
EDIT: So I’m aware that all classes implicitly extend Object. What’s bothering me is that to me there’s a logical disconnect between the notion of an “object” in theory– something with a state and associated functionality– and what’s being done here.
Mathdoes inheritObject‘s methods. Every class in Java ultimately has to inherit fromObject. But since you can’t constructMathobjects, it doesn’t matter. The methods are inherited, but without being able to construct an instance you can’t ever use them fromMath.