The following snippet from https://docs.unrealengine.com/4.26/en-US/InteractiveExperiences/Input/ says that the most recent input enabled actor receives input first. Have you tried blocking input on the subclass, compiling and then enabling it and compiling again?
InputComponents are most commonly present in Pawns and Controllers, although they can be set in other Actors and Level Scripts if desired. The InputComponent links the AxisMappings and ActionMappings in your project to game actions, usually functions, set up either in C++ code or Blueprint graphs.
The priority stack for input handling by InputComponents is as follows (highest priority first):
- Actors with “Accepts input” enabled, from most-recently enabled to least-recently enabled.
If you want a particular Actor to always be the first one considered for input handling, you can re-enable its “Accepts input” and it will be moved to the top of the stack.
- Level Script.
If one InputComponent takes the input, it is not available further down the stack.
If that doesn’t work, what about making a function in the parent and overriding that function in the subclass? E.g. In the parent create a function called
PerformJump and attach it to
InputAction Jump and then in the subclass override