Confused about IsSystemAttribute() in GAS source code

I’ve been studying the source code of GAS recently, and I came across the function HasAttributeSetForAttribute(FGameplayAttribute Attribute) in AbilitySystemComponent.cpp.

I ran into some problems while trying to understand the IsSystemAttribute() function.

bool FGameplayAttribute::IsSystemAttribute() const
{
    return GetAttributeSetClass()->IsChildOf(UAbilitySystemComponent::StaticClass());
}

In the code, it checks whether “AttributeSetClass“ is a subclass of UAbilitySystemComponent (ASC), even though ASC and AttributeSet don’t have any inheritance relationship. Why is it written this way?

Appreciate any help or insights!