7

サブクラス内で、継承された保護された非仮想メソッドをthis.Method()orとして参照する必要がありbase.Method()ますか?

を使用thisすると、同じ名前の新しいメソッドでメソッドを簡単に隠すことができます。base基本クラスの実装のみを呼び出す必要があることが確実な場合にのみ、メソッドの呼び出しを明示的に指定する必要がありますか?

4

2 に答える 2

7

Methodサブクラスで指定されたメンバーを追加し、継承されたメソッドを呼び出したい場合は、 を使用する必要がありますbase.Method()Methodより派生したクラスで名前が付けられたメンバーを追加しても、this.Method()呼び出しの意味は変わりません。

于 2013-05-02T22:00:41.500 に答える
2

常に を使用して呼び出しますthis.Method()

メソッドを非表示にする場合は、基本クラスのメソッドではなく、新しいメソッドを呼び出したいと思うでしょう。一方、基本クラスのメソッドを仮想化する場合は、多態的な方法で if を呼び出すコードを作成する必要があります。

未来を予測することは困難ですが、これらのシナリオが発生する可能性は高いと思われます。

于 2013-05-02T17:37:37.020 に答える