If the previous section had to be summarized into a single word, it would be specialization. The correct use for inheritance is to specialize objects and create more detailed abstractions starting from base ones.
The parent (or base) class is part of the public definition of the new derived class. This is because the methods that are inherited will be part of the interface of this new class. For this reason, when we read the public methods of a class, they have to be consistent with what the parent class defines.
For example, if we see that a class derived from BaseHTTPRequestHandler implements a method named handle(), it would make sense because it is overriding one of the parents. If it had any other method ...