class nor_ih : nor { static new public nor StaticFuctory() { return new nor_ih(); } } class gen_ih : gen<nor> { static new public nor StaticFuctory() { return new nor_ih(); } } とか上書きして、 var n = nor.StaticFuctory(); var n_ih = nor_ih.StaticFuctory(); var g = gen<nor>.StaticFuctory(); var g_ih = gen_ih.StaticFuctory(); と呼び出したかった・・・ でも継承クラスを指定しても基底クラスのstaticメソッドが呼ばれますよね。 class nor { static public nor StaticFuctory0() { return new nor(); } static public nor StaticFuctory() { return new nor(); } } として StaticFuctory0 は上書きしないで、 var n_ih0 = nor_ih.StaticFuctory0(); とすると動きますから。 なんでダメなんだろう?素朴な疑問。