What is the correct approach?

You can’t, that’s the downside. UE4 is both inheritance and components, but you need the right thing at the top, which in your case is probably a Blueprint extending Actor.

You can make a component with your behavior and then add that component to an ActorBlueprint, or put the behavior directly on the Blueprint which is probably simpler. The ActorBlueprint can then also have a static Mesh component, which different instances of can have a different actual mesh.