codebase uses lot of inheritances

Django likes subclassing existing class.

RelatedManager subclasses Manager to get all method from managers.

Create a manager for the reverse side of a many-to-one relation.

This manager subclasses another manager, generally the default manager of the related model, and adds behaviors specific to many-to-one relations.

https://github.com/django/django/blob/a09082a9bec18f8e3ee8c10d473013ec67ffe93b/django/db/models/fields/related_descriptors.py#L675C5-L675C45

Manager is a subclass of QuerySet so that manager has all the methods of QuerySet.

class Manager(BaseManager.from_queryset(QuerySet)): pass

https://github.com/django/django/blob/f030236a86a64a4befd3cc8093e2bbeceef52a31/django/db/models/manager.py#L176