>>410
親の型に代入するからインターフェイスが必要というのは考え方が逆だぞ

自分自身ちゃんと理解できてるか怪しいけど、インターフェイスってのは
意味的制約みたいな感じだと思う
インターフェイスなんて処理を行いたいってだけならJavaとかでも不要

例えば>>410の例だとShainを継承したクラスはstandUp()というメソッドが
定義されていることが保障され、実際の型が分からなくても実際の型に
対応した処理が行われる

例なんて挙げればきりがないけど、今思いついた例だと何らかのプラグインとかだろうか
アプリケーションからプラグインを呼び出す場合に何らかの取り決めが必要だろう
 plugin()関数を定義する とか
これを
 pluginインターフェイスを継承する
と考えてみる。pluginインターフェイスにはinstall() uninstall() main()があって
プラグインを作るには、このクラスを実装しなくてはならない。
そうするとプラグインを呼び出す側では実際の型や実際の処理によらずに同じコードで実行できる。
PHPみたいに型の弱い言語ではpluginを継承しなくてもメソッドが実装されていれば
問題ないがpluginというインターフェイスを継承することによってメソッド定義されていると保障できる。

PHP5では引数にヒントが与えられるようになっているみたいだな
ttp://www.php.net/manual/ja/language.oop5.typehinting.php

結論を言ってしまうとOOPをPHPで実現するにはどうするかというのはいいが
OOP自体についての質問はスレ違い