>>185 186

えーと。頭悪くてすまん。179だと、
子のCircleは(Factoryも)親がどう初期化されるかを知ってなきゃいけない。今回だと x, yをReadByte()
で、一時的に親を作って初期化すれば知らなくて済む。
みたいな事を考えてたんだけど

public class Factory{
public static Shape FromStream(Stream stream){
Shape s=new Shape(stream);
// int x = stream.ReadByte();
// int y = stream.ReadByte();
switch (stream.ReadByte()){
case 0:return s;
case 1:return new Circle(s, stream);//sはgcで殺す
default:throw new Exception();
}
}
}


public class Circle : Shape {
public double r;
public Circle(Shape s, Stram stream)
{base.init(s); // 親の初期化 :base(s)でいいか
r=stream.ReadByte();
}}