Javaの場合:
Parent obj = new Child();
私はParent型のオブジェクトを作成しました。私はParentクラスで定義されたメソッドだけを呼び出すことができると仮定します。したがって、Childで定義された "追加の"メソッドやChildで定義されたアクセス変数を呼び出すことはできません。 ですから、私はChildのインスタンスを新しくしたので、それはメモリの無駄だと思います。これは、Parentよりもメモリスペースが増えます。この時点で私はそれが意味をなさないと思う。 誰かが何らかの理由や例を挙げてもらえますか?
はい、それは理にかなっています。
これは、子を使用したいが、親との対話を親メソッドに制限する場合に行います。
親
このイディオムは、特にJavaコレクションでよく見られます。
List myList = new ArrayList();
はい、それはポリモーフィズムと継承プログラミングの概念の一部です。
このイディオムは、具体的な実装の変更を促すために使用されます。 Joshua Blochによれば、Effective Java(Item 52)
インタフェースを型として使う習慣があれば、プログラムはより柔軟になります。実装を切り替えることを決めたら、コンストラクタのクラス名を変更するだけです。異なる静的な工場)