本質的に同一のものを複数の型で表現するのは、普通はどうかと思うけどね。
そうではなく、一つの型に様々なゲッター/セッター(C#だとプロパティ)を
持たせる方が考え方としてまとも。

というか、元の質問から脱線し過ぎでいい加減スレ違いだと思う。