問題タブ [abstract-class]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 抽象クラスを単体テストする方法: スタブで拡張しますか?
抽象クラスと抽象クラスを拡張するクラスを単体テストする方法を知りたいと思っていました。
抽象クラスを拡張してテストし、抽象メソッドをスタブ化してから、すべての具象メソッドをテストする必要がありますか? 次に、オーバーライドするメソッドのみをテストし、抽象クラスを拡張するオブジェクトの単体テストで抽象メソッドをテストしますか?
抽象クラスのメソッドをテストするために使用できる抽象テスト ケースを用意し、抽象クラスを拡張するオブジェクトのテスト ケースでこのクラスを拡張する必要がありますか?
私の抽象クラスには具体的なメソッドがいくつかあることに注意してください。
java - Javaインターフェースは抽象クラスですか?
私はいくつかの宿題に取り組んでおり、以前の試験問題で、特定の UML ダイアグラム内のすべての抽象クラスに名前を付けるよう求められています。かなり簡単だと思います。1 つの抽象クラスと 3 つのインターフェイスがあります。一般に、これらのインターフェイスは抽象クラスとして認められますか?
java - 抽象クラスはコンストラクタを持つことができますか?
抽象クラスはコンストラクタを持つことができますか?
もしそうなら、それはどのように使用でき、どのような目的で使用できますか?
oop - 抽象クラスとインターフェースの両方を持つ利点はありますか?
ILogin と呼ばれる汎用インターフェイスから始めました。インターフェイスでは、UserID と Password の 2 つのプロパティを実装する必要があります。このインターフェースを実装するログインタイプのクラスが多数あります。私のプロジェクトが大きくなるにつれて、多くのクラスが UserID と Password コードを繰り返していることに気付きました。ここで、ベース Login クラスが必要であると判断しました。
ILogin インターフェイスを実装する抽象基本ログイン クラスを作成し、すべての具象クラスを抽象クラスから継承し、必要に応じてオーバーライドすることは適切ですか? 当初はこれで問題ないと思っていました。それから、 ILogin はおそらく私の抽象クラスによってのみ実装される可能性が高いため、不要であると考え始めました。
抽象クラスとインターフェースの両方を維持する利点はありますか?
ありがとう!
c++ - 抽象基本クラスがインターフェイスの場合、派生クラス コンストラクターで基本クラス コンストラクターを呼び出す必要がありますか?
派生クラスのコンストラクターで基本コンストラクターを呼び出す必要がありますか?
visual-studio - Visual Studio:基本クラスから継承されたすべてのクラスを表示するにはどうすればよいですか?
Visual Studio で、基本クラスから継承されたすべてのクラスを表示するにはどうすればよいですか?
たとえば、ASP.NET MVC にはいくつかの「ActionResult」型があり、それらはすべて基本クラスから継承/実装しActionResult
ます。
View
とJson
が有効な型であることを「知っている」だけでない限りActionResult
、この情報を簡単に見つける方法はないようです。
私が間違っていることを証明してください。
これを簡単に見つけられるオブジェクト ブラウザはありますか?
さまざまなクラスに関するこの情報を発見するために、Visual Studio 以外のツールの提案もお待ちしています。例: Resharper に何か助けになるものはありますか?
java - ヘルパー/ユーティリティ クラスは抽象化する必要がありますか?
私は一般的に、一連の静的メソッドのみを含むヘルパー/ユーティリティ クラスにクラスから共通の動作を抽出していることに気づきます。これらのクラスをインスタンス化する正当な理由が本当に思いつかないので、これらのクラスを抽象として宣言する必要があるかどうか疑問に思うことがよくあります。
このようなクラスを抽象として宣言することの長所と短所は何でしょうか。
c++ - 具象クラスから抽象クラスを派生させる
具体的な があるとしましょうclass Apple
。class Peach
(Apple オブジェクトはインスタンス化できます。) さて、誰かがやって来て、Apple から抽象を導き出します。新しい純粋仮想関数を導入するため、抽象的です。Peach のユーザーは、Peach から派生させて、この新しい関数を定義することを余儀なくされています。これはよくあるパターンですか?これは正しいですか?
サンプル:
ここで、具体的な があるとしましょうclass Berry
。class Tomato
誰かがベリーから要約を導き出します。これは、Berry の仮想関数の 1 つを上書きして純粋な仮想関数にするため、抽象的です。Tomato のユーザーは、Berry で以前に定義された関数を再実装する必要があります。これはよくあるパターンですか?これは正しいですか?
サンプル:
注: 名前は考案されたものであり、実際のコードを反映していません (うまくいけば)。この質問の執筆において、果物は害を受けていません。f# - F# で抽象クラスを実装するには?
このPDC セッションを見た後、F# について少し学びたいと思いました。したがって、C# で既に行ったことを F# で書き直すのが最善の方法だと思いましたが、私の脳は機能モードで考えるのを拒否しています。いくつかの抽象メソッドといくつかの仮想メソッドを持つこの抽象クラスがあります。一部の仮想メソッドもオーバーライドしたいと思います。このクラスは C# で記述され、コンパイルされています。F# で書き直すつもりはありません。だから私の質問は:
- 抽象クラス、抽象メソッド、および仮想メソッドを実装する方法の短いサンプルを持っている人はいますか
- コンストラクターをオーバーロードできますか?
- dll でコンパイルして C# ベースのプログラムで使用できるようにする場合、制約はありますか。
どんな助けでも大歓迎です。
更新:ブライアンの答えには本当に感謝していますが、まだはっきりしていないので、明確にしたいと思います。これが、C# で記述され、dll でコンパイルされた抽象クラスであるとしましょう。F# で実装するにはどうすればよいですか?
F# リソースを探している人のためのドキュメント: - Don Syme (F# の作成者) のブログで見つけたドキュメントを入手したい他の F# がいる場合は、彼の本 F# Expert の無料の章を参照してください。それらは doc 形式でダウンロードできます。
- Tomas Petricek による Real World Functional Programming は、ここに無料の章があります
興味のあるその他のリソース:
c++ - C++ でインターフェイスを宣言するにはどうすればよいですか?
インターフェイスを表すクラスをセットアップするにはどうすればよいですか? これは単なる抽象基本クラスですか?