ConstructorHelpers::FObjectFinder UMaterialInterface or UMaterial?

I has use ConstructorHelpers::FObjectFinder<UMaterial> to change material, but an error has ocorred in visual studio. To Correct error I has used ConstructorHelpers::FObjectFinder<UMaterialInterface> instead of ConstructorHelpers::FObjectFinder<UMaterial>

What´s difference ConstructorHelpers::FObjectFinder<UMaterialInterface> and ConstructorHelpers::FObjectFinder<UMaterial>

What the reason of error?
Thanks

Code Below

// Sets default values
AEsferaDeFogo::AEsferaDeFogo()
{
 	// Set this actor to call Tick() every frame.  You can turn this off to improve performance if you don't need it.
	PrimaryActorTick.bCanEverTick = true;
	
   	EsferaDeColisao = CreateDefaultSubobject<USphereComponent>(TEXT("Raiz"));
	
  	EsferaDeColisao->InitSphereRadius(100.f);
	
	EsferaDeColisao->SetCollisionProfileName(TEXT("OverlapAllDynamic"));
	    	
   	RootComponent = EsferaDeColisao;

	EsferaVisivel = CreateDefaultSubobject<UStaticMeshComponent>(TEXT("Esfera"));
	
	ConstructorHelpers::FObjectFinder<UStaticMesh>
		Esfera(TEXT("/Game/StarterContent/Shapes/Shape_Sphere.Shape_Sphere"));
	
	ConstructorHelpers::FObjectFinder<UMaterialInterface>
		MaterialEsfera(TEXT("Material'/Game/StarterContent/Materials/M_Metal_Gold.M_Metal_Gold'"));
        	
	if (Esfera.Succeeded() && MaterialEsfera.Succeeded())
	{ 
		EsferaVisivel->SetStaticMesh(Esfera.Object);
		EsferaVisivel->SetMaterial(0, MaterialEsfera.Object);
		EsferaVisivel->SetRelativeLocation(FVector(0.f, 0.f, -60.f));
	}

	EsferaVisivel->SetupAttachment(RootComponent);
	
}

I dont know what error you got, but you can say UMaterial could be the same as UMaterialInterface since it inherits from them

The difference between this two classes is that UMaterial inherits from UMaterialInterface, this means it takes the same functions and variables and also add some specific of UMaterial