>>181
public static Shape FromStream(Stream stream)
の中で、x,yを別途持ってて、子クラスにstreamと合わせて渡してあげるんだよね。

共通の初期化部分だけで1つのクラスかstructにして、親クラスのインスタンスで持つ。
一時的な親クラスを起こして、子クラスの中でコピー後に殺すとかgcに任すとコストかかるだろうし。