What is the point of having Trait class here instead of traits being just an empty interface? Just to know it is a "pseudo trait"?
It's a filter/grouping, so you know that what you're extending is definitely a (pseudo) trait. You can do without it - it's definitely a stylistic choice. But I like the safety of it. Your CanRoll or CanBounce fall in the same category of trait classes.
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.