A Person can either be a Pianist, which has a .play() method, either a Singer, which has a .sing() method, either both a Pianist and a Singer, in the latter case he would be able to .sing() and also to .play()
What would be a possible design for this situation?
Sounds like homework to me.
I would suggest you want to use encapsulation and capability objects. In this case, make the instruments the performer knows how to play be capabilities.
You would have something like this: