2009-07-07 1 views
0

私たちが独自の基本クラスに仮想関数を持っている場合、それを派生クラスでオーバーライドして、変数宣言時にキャストを考慮すると、派生クラスでnew修飾子を使用した場合とは異なる結果になります。しかし、なぜ?何らかの論理的な理由があるのですか、何らかの理由なくそれを学ばなければなりませんか?論理的な理由に基づいて、仮想修飾子と新しい修飾子は継承と多型の問題で異なる結果を示しますか?

+0

あなたが質問していることの例は、質問をより明確にするでしょう –

答えて

0

私はあなたがC#を指していると仮定します。

基本的に、サブクラスメソッドがスーパークラスメソッドとは関係がない場合は、new修飾子を使用します。それらは名前を共有しますが、共有された多態性の動作はありません。名前をポリモーフィックに再定義すると、それがオーバーライドと呼ばれます。

0

新しい演算子を使用する代わりに、メソッドの別の名前を選択することをお勧めします。

関連する問題