次の構造を持つ (Android Java プロジェクト内):
public abstract class A {
...
}
public class B extends A {
...
}
public class C extends A {
...
}
ある時点で、ポリモーフィズムを使用しているため、親クラスの型のリストを格納する必要があります。
しかし、次のように親タイプのオブジェクトを格納しようとすると:
A aObject = xObject; //(xObject could be an object of type B or C)
Backendless.Persistence.save(aObject, new AsyncCallback<A>() { ...
抽象クラスを保存しようとしているため、「プロパティなしでオブジェクトを更新できません: CREATOR」エラーが発生します。
この目標を達成することは可能ですか? 子クラス B と C の違いは、画像やテキストのレンダリングなどのアクションを実行する方法です。
編集1:特定のケース
特定のケースは、ミームを作成するための Android アプリです (ミームは、テキストが入った面白い画像です)。この場合、ミームは古典的な方法で描画できます。これは、上部にテキストがあり、下部に別のテキストがある画像です。ミームは引用として描画することもできます。これは、文とその下の著者を含む右側の黒い四角の画像です。
この問題をモデル化するために、属性 (name、topText、bottomText、image など) と子クラスが画像を描画するために使用するメソッドを含む抽象クラス Meme と、描画する 2 つの子クラス ClassicMeme と QuoteMeme を作成しました。独自の方法でミーム。
問題は、ユーザーがミームを作成しているときに、ミームのタイプを切り替えて描画できることです。そのため、この状況に対処するには多態的な参照が必要です。Meme (基本クラス) オブジェクトの保存に進むと、Meme は抽象クラスであるため、それが不可能であることに気付きます。もちろん、この基本クラス参照に含まれる子オブジェクトの種類はわかりません。(私が明確に説明したことを願っています)。