abstract actor,call the subclass's function in father function.

Thank you for your reply. I tried, but failed. The editor told me:
C2259: ASoldierBase : cannot instantiate abstract class.
void ASoldierBase::PrepareBattle(void) : It’s abstract.
this is my code:

UCLASS(Abstract)   //I looked at the class specifier and thought that ”Abstract“ would work, but there was still an error.
class ASoldierBase : public AActor
{
	GENERATED_BODY()
	
public:	
	
    // I didn't call the PrepareBattle function in the constructor
	ASoldierBase();

	virtual void PrepareBattle() = 0;

};

UCLASS()
class APikemen : public ASoldierBase
{
	GENERATED_BODY()
	
public:

	virtual void PrepareBattle() override 
	{
	
	};

};