A superclass is a class from which other classes can inherit methods and properties. In Java, every class has one superclass, with the exception of the Object class, which is the root of the class hierarchy. When a subclass inherits from a superclass, it inherits all of the superclass's non-private methods and members. However, a subclass can override certain methods and members, as well as define new ones.   For example, if a superclass has a method named getName() that Returns the name of the object, a subclass could override this method to Return the full name of the object (e.g., "John Smith"). Similarly, if a superclass only has a default constructor (a constructor with no parameters), a subclass could define additional constructors with different parameters. Finally, a subclass can also add new methods and members that are not present in the superclass. By definition, therefore, a superclass is always more general than its subclasses.