[PHP-users 31283] Re: オーバーライドでのメソッドの拡張方法

Hirohisa Kuwata z-kuwata @ sra.co.jp
2007年 1月 19日 (金) 12:02:50 JST


桑田です。

@ Fri, 19 Jan 2007 11:16:11 +0900
  Shindo <shindo @ atsystem.jp> wrote in message
    <46C73B6FC9B510shindo @ atsystem.jp> ...

>>parentを呼ぶ時点で、呼び先のメソッドの内容は知っておく必要
>>がありますよね?
>そのメソッドの外部仕様のみ知っていれば良いのではないでしょうか。
>クラス外からメソッドを呼び出す時に知っていれば良いことと同じで十分だと思
>います。

細かい処理までは知らなくても良いとしても、IN/OUTは知る必要があり
ますよね?
その中には、そのメソッドの中で発生する可能性があるエラーも含まれ
ると思っています。

>>スーパーマーケットの店員が独自に処理を行ないたければ、parent
>>を呼ばずに処理を書けば良いだけです。
>はい。そうなのですが、処理の99%が八百屋クラスと同じだとしたら、八百屋
>クラスの店員メソッドを使いたいと思いませんか。

思いますが、同じメソッド名である必要はないのではないでしょうか?

# 無理にオーバーライドしようとしているように見えるんですけど。
# 「処理内容を考えるとこのメソッド名じゃないと駄目」という場合
  に同じメソッド名にしてしまうとオーバーライドされてしまうので、
  その救済措置でparentがあると考えた方が楽かも。

>>メソッドをオーバーライドする、という時点で、コードの再利用を
>>放棄する事になると思っています。
>だとすると、オーバーライトと言う言語仕様は何の為に在るのでしょう。

・継承元のメソッドが気に食わないので処理を上書きする
・処理の流れを考え、メソッド名を同じ名前にする事で一貫性と可読性
  を持たせる

ですか。

以上

-- 
 Hirohisa Kuwata
  mailto:z-kuwata @ sra.co.jp



PHP-users メーリングリストの案内