14

C#の仮想メソッドについて読みました。C#に仮想クラスと呼ばれる概念はありますか?C#の抽象クラスとC ++の仮想クラスは同じですか?

4

3 に答える 3

19

C#にはそのようなことはありません。複数の実装の継承はサポートされていないため、実際には必要ありません。クラスを抽象化するということは、実際にはそのクラスのインスタンスを作成できず、完全に実装されていない可能性があることを意味します(たとえば、抽象メソッドが含まれている可能性があります)。

于 2013-02-27T04:21:01.790 に答える
7

C#には仮想クラスはありません。抽象クラスをインスタンス化できないため、抽象クラスは同じではありません。

封印されたものにマークを付けることで、仮想的なものにマークを付けるのとは逆のことができます。これにより、継承されなくなります。

于 2013-02-27T04:26:32.037 に答える
3

私はこの以前のSO投稿へのリンクで意見を述べます:C ++では仮想基本クラスとは何ですか?

他の人が述べているように、C#には多重継承がないため、多重継承を制限する「仮想基本クラス」を持つ必要はなく、C#には適用されません。仮想化できるのはC#のメンバーのみです。

于 2013-02-27T04:53:42.610 に答える