抽象クラスではどのようなことをお勧めしますか?抽象メソッドまたは仮想メソッド?
仮想メソッドがnullを返すか、抽象メソッドを持っていますか?
抽象クラスを継承する必要はないため、nullを返すのが便利で簡単です。しかし、nullを返すことは、それが目的、エラー、または設計によるものであれば、やや難解です。
明確な推奨事項はありますか?
抽象クラスではどのようなことをお勧めしますか?抽象メソッドまたは仮想メソッド?
仮想メソッドがnullを返すか、抽象メソッドを持っていますか?
抽象クラスを継承する必要はないため、nullを返すのが便利で簡単です。しかし、nullを返すことは、それが目的、エラー、または設計によるものであれば、やや難解です。
明確な推奨事項はありますか?
ヌルを返すことは、デフォルトの動作(サポートドキュメントを参照)として行うのが賢明で元気なことですが、おそらくvirtual
は問題ありません。同様に、わかりやすいデフォルトを作成できますが、拡張性を提供したい場合:virtual
。
(コンクリート)クラスがデフォルト以外の実装なしでを機能できない場合は、abstract
にしてください。ここのcasebookのシナリオはStream
です:いいえ実装なしバイトはどこから来ますか?(/へ)
派生クラスに機能を提供することを要求すると、私は抽象メソッドを持っています。そして、私が煩わされていなければ、nullを返す仮想メソッド(または何らかのデフォルトアクションを実行します)。
もちろん、*何かが正しく記述されていないとわかりにくいです。 –