本物のネコだとしてopenDoorというメソッドをネコが持つのはおかしい。

まずネコドアを開けようと思った時、それには理由があるはずだ
外に行きたいとか。

外に行きたいとかいうのは、要するに欲求だな。
ネコは自分で考えて動くが、これをコンピュータに
置き換えるならば、時間などによってネコ自身のパラメータが
変わった結果による行動だ。

ドアの前まで移動し、手(体?)を使ってドア押す。
openDoorというのは、このネコの一連の行動に
名前をつけたものと考えられる。

移動するとか手を動かすとかはネコにつけるべきメソッドであるが、
一連の行動はネコ自身のメソッドではない。

コンピュータ的に言えばアルゴリズムになるだろう。
そのアルゴリズムはネコ自身ではなく別に独立させるべきものとなる。
そうしてopenDoorをネコから分離ささせることでイヌにも使用可能なものになる。

そしてネコが抱いた欲求の中で、そのアルゴリズムを使用することになる。
アルゴリズムはドアをあける一連の行動であるが、
移動するや手を動かすといったメソッドは、
そのアルゴリズムに渡したネコやイヌといったオブジェクトが持つものであり
各オブジェクトによって適切な処理が行われる。