今更お前は何を言っているんDA☆
と突っ込まれそうですが。
プログラム中では、abstract classとなっていても、設計上ではinterfaceとなっている、って場合、ありませんか。ないですね。そうですね。
どっかのブログのコメント欄でがるさん(*1)が多重継承が無いOOPなんて考えられない!ってのは、んー、そういうこと、なのかなぁ?つーか、まんまPHPのことなんですが。あああ
abstract classならば、実装が許されるから、無駄を省けるんですよね。
interfaceは、単に外観、窓口を定めるだけですから、そりゃあ実装を許したら存在意義があやややになってしまうんでしょうけど。
それでも、インターフェイスとしてのabstract classってあるんじゃないかなぁ、と思っているのはダメな考え方かなぁ。うー。。
まあでも、同じような処理をさせたいけど、びみょーに違う、って場合には別のそれに応じた実装方法があるわけで。
でもでも、インターフェイスを実装した抽象クラスを継承したクラスを作るのって、なんだか違う気がするのですー。この辺りは正直なんかもやもやしてるので色々調べてみないとなー、とは思っているんですけど。。
とりあえず、「多重継承をするために」interfaceを使うとか、わけわからんことはしないように気を付けては居ます。
「オブジェクト指向は開発手法であると同時に、思想でもあるから、その構文の本質を捉えて書かないとすぐわやになってしまう」
*1
エンジニアさん。PHPプロ!(
http://phppro.jp/)でセキュリティに関する連載を書かれています。「せきゅ・・・り・・てぃ?」な僕は日々目から鱗です。元占い師だとか何とか。