質問: new Child2(); break; default: break; } var_dump($obj->setA('多相性 ')->execute()->getA()); コード ```
回答: 概念として理解するのであれば、ですけど...。 あるプログラムを実行して、その結果が「1(数値)」と出た場合、 ポリモーフィズム(多態性・多様性):結果の「1」を他のプログラムで処理する場合、型を数値や 文字列、ブール値などに変換して受け渡すようにする。 継承:「1」をあくまで数値として受け渡し、型を変更しない。 といった「使い分け」を行なう、という事ではないか?と思います。 とはいえ、「オブジェクト指向」の考え方では、 あるプログラムの処理の塊を、別のプログラムで利用する「継承」と、 そのプログラムに様々な処理を追加することで他の処理も出来るようにする「ポリモーフィズム」 は、実際には使い分けの必要自体が無いわけで...。 「すべきではない」というのは、使い分けという行為そのものが、プログラム資源の自由な使い方を 提唱する「オブジェクト指向」の考え方に反するため、という理由から来ています。 オブジェクト指向が提唱されるまでは、一連の処理を「一から十」まで記述する方法しか 無かったので、作成したプログラムを改造したり、あるいは追加処理を行う場合は 全てコピペしてから中身のコードを変える方法しかなかったのです。 オブジェクト指向では、プログラムの処理を細分化し、それらを組み合わせて処理することを 可能にすることで、処理の追加や削除が小さい処理単位で可能となっています。 また、同じ処理であればいちいち同じ内容を一から記述する必要もなく済むことや、 多少違う処理でも、共通性が全くない処理でない限りは、既にある処理の塊に 必要な処理を追加する事で目的を実現可能となっています。 これらを理解できれば、例のコードも少しでも理解は可能かと。 あと、「オブジェクト指向」については以前よりも参考書が充実していますので、 色々調べてみるのがいいかもしれません。