Is efficient to create my abstract class on C++ and the others on Blueprint?

I have 7 characters on my game, if i create a AbstracCharacter on c++ and make the other 7 on blueprints would be good? this is a good practice?

You should not create abstract (in C++ they are called Pure Virtual) classes for UObjects. Every UObject class must be able to create at-least one instance which is used for its defaults called the DefaultObject.

But is it good practice to create your base class in C++ and inherit from it for your BP classes.