保護されたインスタンス化を使用して親クラスから継承するクラスを作成しています。スーパークラスには、クラスのインスタンスを提供する静的メソッドがあります。
次のコードは実行時エラーを引き起こしますMOVE_CAST_ERROR
:
data: o_child type ref to zchild.
o_child ?= zparent=>provide_instance( ).
私も試しました:
data: o_parent type ref to zparent,
o_child type ref to zchild.
o_parent = zparent=>provide_instance( ).
o_child ?= o_parent.
私は過去に他のオブジェクトタイプとのダウンキャストに成功しました-2つのクラスを互換性のないものにする可能性のあるZPARENTまたはZCHILDで何を探すべきか考えている人はいますか?
現在、ZCHILDには追加のメソッドが1つしかないため、スーパークラスに追加すると、クラスの抽象化が破られるため、私はそれほど熱心ではありません。