>>594
うーん、別に頭の良し悪しじゃなくて、単にイメージがしづらいだけじゃないかな

概念的なこと聞くより手を動かした方がいいかも
俺もいろんなとこで聞いたけど理解できずに、デザインパターンをやったりいろいろ工夫して手を動かしたらすんなり理解できるようになったし

まずデザインパターンのFactoryパターン辺りをやってみて?

Parent obj = new Child();
という生成をFactoryパターンでやると、
Parent obj = Factory.Create();
のような感じになるはず

そしたらこのobjを動かす方は内部でChildでnewしているかどうかは見えないよね?
単にParent型である保証しかされてない
でも言い換えると「Parentにあるメソッドはと持ってる」だよね?
実際の処理はオブジェクトであるobjが知ってるからobjに紐付いているメソッドを動かす

オーバーライドしてる場合は直近の「自身で再定義した方」
と解釈され、オーバーライドされてない場合は直近の「親の方」と解釈される
だって「自身で再定義した方」はないからね

そしてobjを動かす方からすれば(Childでnewしていようと)Childかなんてわかんない
だからChild独自のメソッドは使えない

もちろん、C#だとasとかでキャストしたりすれば(Childで生成しているなら)Child独自のメソッドも使えるけどね

FactoryMethodパターンはFactoryパターンの拡張版だからFactoryパターンを理解してみて)