2つのクラスAとBがあるとします。どちらもスーパークラスCのサブクラスです。次に、CがメソッドareYouA()を定義していると仮定しましょう。オブジェクトがAクラスのオブジェクトであるかどうかを確認するメソッドです。これは、オブジェクト指向のアプローチで抽象クラスを使用する正しいアプローチですか?
だから、可能なコード、Cの++で、次のようになります。
C object1 = A()
C object2 = B()
if (object1.areYouA()==true){//crazy code here regarding if it's an A object}
if (object2.areYouA()==false){//crazy code here regarding if it's a B object}
OOのPOVから、彼らはでている場合、それぞれのオブジェクトを求めるためにBとCのクラスにメソッドを追加することが適切ですクラス???それが正しくない場合は、これに別の方法がありますか?私の目的は明らかです。私は必要な2つのクラスAとBを持っています。ある時点では、AクラスまたはBクラスのバイナリデータの部分があります。それは構造が変化する必要があり、その一部がBのクラスのオブジェクトになります。だから私のアプローチは、抽象クラスを親として考え、最初はCオブジェクトを宣言してAオブジェクトを格納し、後でBオブジェクトを変更して格納することでした。 パターンのようにこれに別の承認がありますか?
ADDITIONAL INFO:
私はこのことについて非常に明確波平と思います。ファイル1のAオブジェクトからの情報とファイル2のBオブジェクトからの情報を保存したいとしましょう。そのマザークラスをインタフェースとして使用する場合、それぞれのファイルに格納するAオブジェクトかBオブジェクトかどうかをどのように判断できますか?私はそれらのファイル名のために各オブジェクトに属性を追加する必要がありますか?つまり、ファイルの名前を変更する必要がある場合は、すべてのオブジェクトも変更する必要があります。
あなたのコードはコンパイルされず、たとえそれがあったとしても、あなたの考えをしません。多相性は、参照とポインタを通してのみ機能し、コピーでは機能しません(「スライス」を参照)。 –