dynamic_castしなくても、型が判別できるようにObject.type_id()を追加