How can I override overlap event in child class?

Parents class has overlapevent. And I want child class override the overlapevent and add some functions to it.
In parents class, give “Success” message at the overlapbegin.
In child class, give another message at the overlapbegin.
But always only “Success” message is out.
How can I override overlapevent correctly?

// Fill out your copyright notice in the Description page of Project Settings.

#pragma once

#include "CoreMinimal.h"
#include "Zone.h"
#include "DangerZone.generated.h"

/**
 *
 */
UCLASS()
class LOC_API ADangerZone : public AZone
{
	GENERATED_BODY()

public:
	ADangerZone();

	UPROPERTY(BlueprintReadWrite)
	TSubclassOf<AActor> MonsterToSpawn;

	UFUNCTION()
		void SpawnMonster();

	virtual	void OnOverlapBegin(class UPrimitiveComponent* OverlappedComp, class AActor* OtherActor, class UPrimitiveComponent* OtherComp, int32 OtherBodyIndex, bool bFromSweep, const FHitResult& SweepResult);

};

// Fill out your copyright notice in the Description page of Project Settings.


#include "Zone/DangerZone.h"
#include "..\..\Public\Zone\DangerZone.h"

ADangerZone::ADangerZone()
{
	CollisionMesh->SetGenerateOverlapEvents(true);
}


void ADangerZone::SpawnMonster()
{
	FActorSpawnParameters SpawnParams;
	FVector Location = ADangerZone::GetActorLocation();
	FRotator Rotator = ADangerZone::GetActorRotation();
	AActor* SpawnedActorRef = GetWorld()->SpawnActor<AActor>(MonsterToSpawn,Location,Rotator,SpawnParams);
}

void ADangerZone::OnOverlapBegin(UPrimitiveComponent* OverlappedComp, AActor* OtherActor, UPrimitiveComponent* OtherComp, int32 OtherBodyIndex, bool bFromSweep, const FHitResult& SweepResult)
{
	Super::OnOverlapBegin(OverlappedComp,OtherActor,OtherComp,OtherBodyIndex,bFromSweep,SweepResult);
	GEngine->AddOnScreenDebugMessage(-1, 5, FColor::Red, "Ssss");
}