アカウント名:
パスワード:
ぜんぶ作って抱え込めばいいじゃん。
C++ のWebフレームワークやってますって人誰か居ないかね。普通に使えるよー、とかやっぱマゾですわー、とか聞いてみたい。
???「C++、聞こえていたら君の生まれの不幸を呪うがいい」???「君は良い言語だったが、多重継承がいけないのだよ」
よくC++は多重継承が・・・って言う人いますけどJavaのインターフェースは多重継承の一種なんですよね。
継承に関してC++にあって(7以前の)Javaに無いのは実装の多重継承だけで、型の多重継承とでも言うべきインターフェースの多重継承はJavaも許しています。多重継承の欠点として関数名の衝突やダイヤモンド継承がよく挙げられますが、これらはインターフェースを通してJavaでも起こり得ることです。
そこでJavaは実装の継承を一つに限ることで問題を回避しようとしているわけですが、一般に同名関数の意味が一致することは期待できないはずです。例えば、ゲーム内の車両を
実際上、車両クラスのrunメソッドと、Runnableインタフェースのrunメソッドが混同されることはないよ。インスタンスを受ける変数なりメソッドの引数には型が指定されていて合致しなければ受け入れられない。受け入れられたなら、そのインタフェースで定義された特定のシグネチャを持つメソッドの意味は1つに特定される。つまりインスタンスの受け渡し観点でで認識の齟齬によるインタフェース上の不都合が生じる事はない。もちろんインタフェースの規約に従ってメソッドが実装されていればという前提はあるが、それを否定したらそもそもインタフェースという概念が成り立たなくなる。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
吾輩はリファレンスである。名前はまだ無い -- perlの中の人
男は黙ってC++ (スコア:0)
ぜんぶ作って抱え込めばいいじゃん。
Re: (スコア:0)
C++ のWebフレームワークやってますって人誰か居ないかね。
普通に使えるよー、とかやっぱマゾですわー、とか聞いてみたい。
Re: (スコア:0)
???「C++、聞こえていたら君の生まれの不幸を呪うがいい」
???「君は良い言語だったが、多重継承がいけないのだよ」
Javaは多重継承を許している (スコア:2, すばらしい洞察)
よくC++は多重継承が・・・って言う人いますけど
Javaのインターフェースは多重継承の一種なんですよね。
継承に関してC++にあって(7以前の)Javaに無いのは実装の多重継承だけで、
型の多重継承とでも言うべきインターフェースの多重継承はJavaも許しています。
多重継承の欠点として関数名の衝突やダイヤモンド継承がよく挙げられますが、
これらはインターフェースを通してJavaでも起こり得ることです。
そこでJavaは実装の継承を一つに限ることで問題を回避しようとしているわけですが、
一般に同名関数の意味が一致することは期待できないはずです。
例えば、ゲーム内の車両を
Re:Javaは多重継承を許している (スコア:0)
実際上、車両クラスのrunメソッドと、Runnableインタフェースのrunメソッドが混同されることはないよ。
インスタンスを受ける変数なりメソッドの引数には型が指定されていて合致しなければ受け入れられない。
受け入れられたなら、そのインタフェースで定義された特定のシグネチャを持つメソッドの意味は1つに特定される。
つまりインスタンスの受け渡し観点でで認識の齟齬によるインタフェース上の不都合が生じる事はない。
もちろんインタフェースの規約に従ってメソッドが実装されていればという前提はあるが、
それを否定したらそもそもインタフェースという概念が成り立たなくなる。