In other words, you are trying to express a relationship that does not really model anything in OOP terms. You proposal will work but it will essentially be just hacky implementation of mixins with some extra informational overhead.
Maybe we can come with a better proposal if you explain what object model are you trying to achieve?
