构造函数，序列化接口