The purpose of a DTO is to transfer data in a structured way. Inheritance tends to get in the way of this when trying to establish a data contract between client and server. You can do this, but it tends to be painful.
I recommend that you go with aggregation.
source
to share