ClassA,ClassB,,,のインスタンスをJsonで保存したい。

Class Ihozon{
void init(){} //変数を初期化
string serialize(ClassA str){ }
ClassA deserialize( string json){ }
}
というインターフェースを作って保存処理は共通化したいと思うのだが、Serializeするのにクラス名の
引数が必要になるので共通化できない。こういう場合どうしたらいいの?