super() không "gọi class cha" mà uỷ quyền cho class kế tiếp trong MRO (Method Resolution Order) của instance thực tế. MRO tính bằng thuật toán C3 linearization, phụ thuộc lớp cụ thể đang khởi tạo chứ không cố định vào lớp bạn viết super().
Nhờ đó, trong đa kế thừa, nếu mọi class trong cây đều gọi super().method(...), chuỗi uỷ quyền sẽ nối qua tất cả class đúng một lần theo MRO — gọi là cooperative multiple inheritance.
Điều kiện để hợp tác đúng: các method cùng signature (hoặc dùng *args, **kwargs) và mỗi class đều gọi super(). Nếu một class quên gọi, chuỗi bị đứt.