@Kilianの回答に同意しますが、いくつかの要素を追加します。
1- OSではなく仮想マシンに対して実行
JavaとC#は仮想マシンを介して実行されているため、VM内の何かを破損する可能性が高いため、OSを直接操作しているときは希望どおりに正確に実行できないことが論理的に予想されます。さらに、Javaはプラットフォームにとらわれないものとして指向されているため、さらにロジックになります。
2トンのアプリケーションでは、こうした種類のものは必要ありません。
それほど多くの詳細を掘り下げる必要のないアプリケーションがたくさんありますが、それを行う必要がある言語でそれを行うと、次のようになります。
- これらの不必要なものが原因でバグが発生するリスクが増えます。
- より多くの開発コスト、メモリの管理、テストには時間とお金がかかります!
3-言語は、すべてのような、いくつかの選択の重み付けコスト/使用法/リスクに基づいて作られます。
C ++を使用すると、ほとんど何でもできます。それがC ++の人々の選択です。ただし、存在するほど、より多くの処理が必要になります。
したがって、多重継承のようなものは、それらが危険であるという事実だけでgivenめられず、それらを実装するのにコスト(開発、保守)があるためgivenめられます。一般に、別の方法で書き換えられます。