Inheritance Heirarchy Question

I’m trying to create a class (let’s call it MyClass for simplicity). MyClass contains some of its own functionality as well as including a custom component (MyComp) that handles some additional functionality. Currently, MyClass inherits from AActor. However, sometimes MyClass will need to be APawn. I’ve only been able to come up with less than ideal solutions to this problem:

  1. Make MyClass inherit from APawn instead, so that all instances of MyClass will be an APawn, whether they need to be or not (seems inefficient).
  2. Create a custom pawn class that is just a copy of APawn that inherits from MyClass instead of AActor (No).
  3. Create a custom pawn class that is just a copy of MyClass that inherits from APawn instead of AActor (Still no).
  4. Eliminate MyClass and transfer all of its functionality to MyComp, attaching MyComp to instances of AActor or APawn as necessary. This seems to be the most viable option, but it will result in MyComp being a bit bloated (for example, it will be handling finding and moving the AActor/APawn to a safe starting location on spawn as well as collecting and transferring information about it to another class).

Is there an obvious, less bad solution that I’m not thinking of?

EDIT:
Just to clarify a bit more what the problem is… Say MyClass is a Lifeform. A Lifeform may be a Plant or an Animal. If it’s an Animal, it will need to be an APawn. However, a Plant would only need AActor functionality. They both need Lifeform functionality.

A minor alternative to your fourth option would be to transfer that functionality to multiple components instead of trying to keep everything related to Lifeform in a single component. Maybe you have a Lifeform component that you derive a Plant and Animal component from. Or you could have your Plant and Animal components be unrelated except that they both implement the same Lifeform UInterface.