問題タブ [class-hierarchy]

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.

0 投票する
1 に答える
952 参照

objective-c - ベースからすべての子孫までクラス階層をトラバースします

私が書いているiOSアプリでは、クラス階層をトラバースして、すべてのサブクラスのインベントリを作成したいと思います。私の意図は、各サブクラスタイプをNSStringForClass()辞書のキーとして(経由して)使用することです。

私の動機は、基本クラスのすべてのバリアントを自動的に検出して、そのクラスに関連付けられたメソッドを呼び出せるようにすることです。分業の理由から、私はここでオーバーライドするメソッドを使用しないことを好みます。

そのようなトラバーサルを行うことは可能ですか?それはどのように機能しますか?

0 投票する
6 に答える
2977 参照

java - Java API クラス図はどこにありますか?

JAVA API クラス図を見つけることができるサイトはありますか。クラス階層 (例外クラス階層の例) を視覚的に確認できると便利です。ありがとう。

0 投票する
2 に答える
251 参照

c++ - サブクラスにコンストラクター内の親への参照を受け入れるようにする

簡単に次のように配置できるクラス階層があります。

このような2つのインスタンスを作成しようとすると:

Clangから次のエラーが発生します:

このクラスをコピーできないようにしたいのでParent&、コピーコンストラクターの代わりにオーバーロードを呼び出す方法はありますか?なぜそれがそのように動作するのかは知っていますが、回避策を探しています。Child(Parent& p)キャストせずに呼ばれたいです。

GCCとVisualStudioでもこのエラーが発生します。Intelのコンパイラではわかりませんが、他の3つの動作が一貫していることは、それが間違っていて、他の動作が正しいことを示しているようです。

0 投票する
2 に答える
2331 参照

java - 同じパッケージ内の異なるクラスからコンストラクターを取得して認識させることはできません。

したがって、投稿するこれらの 2 つのファイルは、それぞれデータベース パッケージに含まれています。DBBinding クラスは、キー用の文字列と値用の文字列を持つオブジェクトを作成するだけです。次に、DBrecord は、すべて同じキー文字列を持つが異なる値文字列を持つ DBBinding のコレクションを保持します。何らかの理由で、DBBinding クラス/オブジェクト コンストラクターを呼び出すように DBrecord で add メソッドを作成する正しい方法を考えたり見つけたりすることができません。

これは、バインディングを追加することになっているメソッドです。

DBBinding コードとそれに続く DBrecord コードを次に示します。

0 投票する
5 に答える
3784 参照

c++ - 2 つのスーパークラスに同じ名前のメンバー関数があるがシグネチャが異なる場合があいまい

d.f呼び出しは問題ないが、c.f与える理由は何ですか

0 投票する
2 に答える
101 参照

java - Eclipseには、Javaクラスの完全な実装の「マージ」を表示する手段がありますか?

私は現在、非常に長いクラス階層を持つJavaフレームワークを使用しています。クラスのコードパスをクロールするときは、この階層内の異なるクラス間を行き来する必要があります。

クラスの完全な実装とそのすべての最も具体的なメソッドの「合成マージ」を提供するツールまたはEclipseビューを探しています。このようなものはありますか?

たとえば、次のクラス実装階層を操作する必要があります。InternalResourceViewResolverはUrlBasedViewResolverを拡張し、AbstractCachingViewResolverを拡張します。

これで、InternalResourceViewResolver内のコードを読み取るときに、そのスーパータイプのメソッドが呼び出されます。前後にブラウジングすると(「宣言を開く」(F3)と戻るボタン(Alt + Left)を使用)、混乱する可能性があります。フォーカスを失い始め、調査したサブクラスによって実際にオーバーライドされるスーパークラスのメソッド実装を誤って読み取ります。

0 投票する
1 に答える
639 参照

c# - 基本クラス オブジェクトのリストからサブクラスのメソッドを呼び出しますか?

質問に入る前に、コードの構造のサンプルを次に示します。

次に、クラス内のItemオブジェクトのリストを作成します。Worldリスト内の各オブジェクトは、アイテムのタイプです。

次のように、特定のアイテム クラスごとに use メソッドを呼び出すにはどうすればよいでしょうか。

私の問題について何かわからないことがあれば、遠慮なく私に聞いてください!

0 投票する
5 に答える
5488 参照

java - Thread サブクラスで run() メソッドをオーバーライドする

Thread拡張するクラスをサブクラス化し、次のコードを記述してテストした場合、結果がどうなるか疑問に思っています。

結果は次のとおりです。

A スレッド 0
で B スレッド 1 で

しかし、なぜ2つのスレッドが作成されるのかわかりませんか?

0 投票する
1 に答える
1062 参照

java - Javaでのオブジェクト拡張

Javaで、特定のクラスを拡張するためにジェネリックを必要とするオブジェクトがあり、そのクラスの拡張を使用してそれを実装したい場合、実際に独自のルールに違反していないことをJavaに通知する方法はありますか?それが意味をなさないと仮定した以下のコード例。

だから私の質問は本質的に、私のWantedObjectが実際には直接ではないのに私のUsefulObjectを拡張することをStaticInterfaceに伝える方法はありますか?OlderObjectに多くの有用なコードが含まれていて、使用しているシーケンスが現在の状態を知りたいデータベースに書き込んでいるという理由だけで、WantedObjectをUsefulObjectの純粋な拡張として書き直す必要はありません。 OlderObjectの。これを書いているときに、WantedInterfaceでOlderObjectのインターフェイスを直接拡張できることに気づきましたが、これを回避する方法があるかどうかを知りたいと思います。

編集:さて、非常に奇妙なひねりを加えて、WantedObjectの拡張子をUsefulObjectに変更し、それを元に戻すことで問題を修正することができました。おそらく、問題は一時的なIDEの問題でしたか?私は日食を使用していますが、これに偶然問題がありますか?

0 投票する
1 に答える
86 参照

c++ - より良い階層によって作成されたプレーヤークラスはどれですか?

将来の実装に適したクラスはどれですか?暴行捕食者(多重継承)または女王(マルチレベル階層)?

見られるように、暴行捕食者は、生きている捕食者と捕食者から別々に派生しています。女王はエイリアンに由来し、エイリアンは生きていることに由来します。

質問:プログラミングとクラス階層の観点から、どちらがより論理的ですか。

これらのプレーヤーの短所と長所は何ですか?