基本クラスと保護されたメソッドではいつ静的メソッドを使用する必要がありますか? (base.MethodNameを使用して、派生クラスから呼び出すことができます)基本クラスで静的メソッドを宣言する必要があるのはいつですか?
答えて
あなたの方法は、あなたが唯一の子孫がベースからメソッドを呼び出したいとき、保護対象
の状態に依存しない場合に静にのみ使用すべきです。一般に
Base.Methodをオーバーライドメソッド
オブジェクトの状態 - >特定の瞬間におけるプライベートフィールドとパブリックフィールド/プロパティの値。 –
'Base.Method'とは何ですか?その最後の文はどういう意味ですか? –
保護及び静的は排他的ではない場合に使用されます。
protectedは、派生クラスがベースメソッドにアクセスできるようにすることを意味します。
staticは、メソッドがインスタンスの状態にアクセスする必要がないことを意味します。インスタンスメソッドとは対照的に、クラスメソッドと呼ばれることがよくあります。
基本キーワードは、基本クラスからメンバーをオーバーライドする場合にのみ有効です(基本メンバーはしばしば仮想としてマークされます)。これにより、派生クラスでオーバーロードした場合のために、ベースメンバーを参照することができます。
静的メソッドの利点の1つは、コードのコピーが1つだけメモリに残ることです。これは、多くのメソッドを持つオブジェクトの大きなコレクションがある場合に特に便利です。言い換えれば、それはあなたのメモリフットプリントを減らすことができます。また、マルチスレッドアーキテクチャで共有データを処理する際に、保護されたコードブロックを制御する方が簡単で直感的です。しかし、オブジェクトのキャストされた(基本クラス)インスタンスを基本クラスの静的メソッドの1つに渡すのは構文的には不愉快かもしれませんし、開発者によってはこのコーディングスタイルで混乱するかもしれません。
- 1. どこで静的変数を宣言する必要がありますか?
- 2. 基本クラスでより一般的なメソッドがある場合、基本クラスのメソッドをオーバーライドする方法は?
- 3. ジェネリックプログラミングで派生クラスの基本クラスメンバ関数を再宣言する必要があります
- 4. すべての関数を基本クラスに仮想宣言する必要がありますか?
- 5. 静的メソッドのみを持つクラスは静的であるべきですか?
- 6. C++クラスの静的宣言
- 7. クラスの静的宣言
- 8. 子クラスが親クラスの静的インスタンスメンバーを宣言するのはいつ、そしてなぜですか?
- 9. ClassInitializeメソッドを静的にする必要があるのはなぜですか?
- 10. いつ静的メソッドを使用する必要がありますか?
- 11. PHP - 静的メソッドと非静的メソッドを宣言できますか?
- 12. Javaでクラスが静的であると宣言されているのはなぜですか?
- 13. Androidのアダプターは、静的内部クラスまたは非静的内部クラスである必要があります
- 14. web.configでhttpsを宣言する必要がありますか?
- 15. app.yamlでindex.htmlを宣言する必要がありますか?
- 16. 基本クラスの宣言にオーバーロードされたメソッド
- 17. 基本クラス静的変数を通じて派生クラスメンバーにアクセスする必要があります
- 18. 同じ "auto"宣言で基本クラスが自動的に推論されないのはなぜですか?
- 19. 派生クラスは、基本クラスのstaticメソッドをオーバーライドされたプロパティで呼び出す必要があります
- 20. MFCの抽象基本クラスでDECLARE_DYNAMICが必要ですか?
- 21. エラー:クラスを抽象宣言するか、残りのメソッドを実装する必要があります
- 22. なぜfprintfを使用する場合、インライン関数を静的宣言する必要がありますか?
- 23. iPhone 2つの異なるクラスからクラスを継承する必要がある宣言
- 24. シングルトン内のメンバー変数は静的として宣言する必要がありますか?
- 25. mの静的宣言は非静的宣言に従います
- 26. インターフェイスを再宣言する必要があるのはなぜですか?
- 27. 基本クラスを個人的に継承したいとき、なぜ名前の宣言がありますか?
- 28. CustomFieldSerializerに静的メソッドが必要なのはなぜですか?
- 29. ヘルパーメソッドはC#で静的クラスを使用する必要があります
- 30. 静的定数クラスのメンバ宣言
「**静的メソッドを宣言する」(質問のタイトルのように)または「**静的メソッドを使用する」(質問の本文のように)を意味しますか? –