煽ったからにはエントリー。
ネタ元はコチラ → http://blogs.wankuma.com/torikobito/archive/2007/05/10/76196.aspx
多重継承をサポートしている言語もありますが、Visual Basic がサポートしているのは単一継承だけです。したがって、派生クラスの基本クラスは常に 1 つだけです。クラスでは多重継承することはできませんが、複数のインターフェイスを実装することはできます。複数のインターフェイスを実装すると、多重継承と同様の結果が得られます。
…とMSDNには書いてあるそうな。ふーん。
多重継承と同様の結果ってナニよ(ぷんすか)。
interface Iテレビ と Iビデオ を : のうしろにくっつければ テレビデオ になるんか?
なりゃしませんね。 テレビとビデオの操作パネルがくっつくだけです。
interfaceてーのは中身のないハリボテです。
実体を伴わない口約束です。言うだけならタダです。
巧言令色、鮮矣仁(こうげんれいしょく、すくなしじん)です。
そう、使う側にしてみれば両方の操作パネルが付いたんだから
"多重継承と同様の結果"でしょうよ。
でもね、作る側はどーよ。どーなのよと。
結局 Iテレビ/Iビデオ が吐いた約束を守るべく、テレビ実装/ビデオ実装が必要で、
class テレビデオ : Iテレビ, Iビデオ {
private テレビ実装 tv;
private ビデオ実装 vcr;
public void 録画() { vcr.録画(); }
public void 視聴() { tv.視聴(); }
...
}
みたく操作パネルと実装をいちいち結びつけてやらないかん。
操作パネルにボタンが701個(10%増量)あったらどーすんのと。
賽の河原かと。ひとつ積んでは母のためかと。
MixInを言語レベルでサポートしてくれてたら
"多重継承と同様の結果"ってゆってもいいと思うけどさ。
class テレビデオ : Iテレビ, Iビデオ {
private テレビ実装 tv implements Iテレビ;
private ビデオ実装 vcr implements Iビデオ;
// って書いとけば操作パネルが実装に自動的にがっちんこ、なんてな。
}