在继承层次结构中重载构造函数是否表示需要组合?

Let's say I have a user class, which has basic properties such as first name, last name, address, etc. From this user class, I have subtypes for internal employees, consultants, and clients, all of which require extra properties, and therefore more arguments to be passed into the constructor, which would violate the Liskov Substitution Principle. How can I compose my way out of this seemingly basic problem?

You need to provide default values ​​for all new parameters, so that we could call the constructor without them and not get any new exceptions.

If it does not fit into the logic, different subtypes do require different properties, according to LSP, we should not use inheritance.

Traits may be used instead, for example.