All depends on how you structure your game and your objects.
Don’t worry too much about abstraction until you actually need to abstract something - it can always be done later.
I suggest avoiding inheritance entirely for something like this. It doesn’t really gain you much, and just encourages anti-patterns like if (object is SomeClass).
Just make “Entity” its own component (MonoBehaviour), and drop it on all of your entities such as Players, NPCs , etc… They can have other components that do all the other stuff.