缺了子类转换函数，基本写完了