問題タブ [subclass]

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 投票する
15 に答える
36774 参照

java - Java での継承 - サブクラスのオブジェクトを作成すると、スーパークラスのコンストラクターも呼び出されます。なぜ正確に?

Javaの継承について質問です。

私は2つのクラスを持ってAおりB、クラスBはAから継承しています:

プログラム B を実行すると、出力は次のようになります。

質問: のコンストラクターclass A呼び出されるのはなぜclass Bですか?

私は、B が A からすべてのものを継承していることを知っています - すべてのインスタンスまたはクラス変数、およびすべてのメソッド。この意味で、B のオブジェクトは A のすべての特性に加えて、B で定義されたいくつかの他の特性を持っています。しかし、私は知りませんでしたし、知りませんでした」タイプ B のオブジェクトを作成すると、A のコンストラクターも呼び出されると想像してみてください。だから、これを書く:

タイプ B とタイプ A の 2 つのオブジェクトを作成します。

これは面白くなってきました、

誰かがなぜこれが起こるのか説明できますか?

0 投票する
18 に答える
149557 参照

java - Javaで特定のクラスのすべてのサブクラスをどのように見つけますか?

Javaで特定のクラスのすべてのサブクラス(または特定のインターフェイスのすべての実装者)を検索するにはどうすればよいですか?今のところ、これを行う方法はありますが、(控えめに言っても)非常に非効率的です。方法は次のとおりです。

  1. クラスパスに存在するすべてのクラス名のリストを取得します
  2. 各クラスをロードしてテストし、それが目的のクラスまたはインターフェイスのサブクラスまたは実装者であるかどうかを確認します

Eclipseには、タイプ階層と呼ばれる優れた機能があり、これを非常に効率的に表示できます。どのようにしてプログラムでそれを実行しますか?

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

c++ - Borland C++ Builder での Windows サブクラス化

CWnd.SubclassWindow メソッドを使用する MFC で記述された C++ コードの一部を、Borland C++ Builder コードに変換しようとしています。サブクラス化 (TForm オブジェクトを使用したサブクラス化) の方法を知っている人はいますか?私たちは完全に立ち往生しています。どんなポインタでも大歓迎です!ティア!

仕様:

TForm から継承する Borland C++ で記述された既存の基本クラスがあります。これは、TForm から継承するすべてのフォームに特定のルック アンド フィールを与えるために使用されます (たとえば、WM_NCPAINT と WM_NCHITTEST を重く処理します)。

ここで、このコードを使用して、他の言語 (正確には MSVC++/MFC と C#) で記述されたフォームに同じルック アンド フィールを提供したいと考えています。

すべてのコードを書き直す代わりに、Windows のサブクラス化を使用することは素晴らしいアイデアだと考えました。次に、すべての既存のテスト済みコードを DLL に詰め込み、それを hWnd で呼び出すだけで、そのウィンドウは自動的に新しいルック アンド フィールを取得します。

なぜこれが不可能なのかは、私にはわかりません。私自身、Borland C++ でコードを書いているわけではありません。Borland C++ 開発者に私が何を望んでいるのかを示すために、MFC でスタブをわずか数分で作成しました。彼らは MFC の CWnd::SubclassWindow メソッドを模倣しようとして何日も費やしましたが、成功しませんでした。

私が理解していることから、問題は、「new TForm()」を実行すると、新しいウィンドウが停止する前に自動的に作成されることです。そのため、WindowProc を置き換えると機能しますが、不要な TForm ウィンドウが画面上に浮かんで使用できなくなります!!!!

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

java - javaのスイング:カスタムすべて-サブクラスjcomponentまたはjpanelまたは...?

Hiya-クイックワン-JPanelと比較してJComponentをサブクラス化することに害/価値はありますか?

私が自分で描画している場合、オブジェクトには子がない場合、それらはほとんど同じように見えますが、JComponentよりもJPanelをサブクラス化するための設定があるようです-これがなぜかもしれないかについての意見を探しているだけですなれ ...

どうも :-)

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

iphone - iPhoneでNSObjectのサブクラスを初期化するには?

他のクラスが を使用してこれらのメソッドを呼び出すことができるように、クラスにいくつかのメソッドを記述したいと考えています[instance methodName:Parameter]

クラスが のサブクラスである場合はUIViewController、 を使用initWithNibNameして初期化できます。しかし、メソッドをNSObject のサブクラスに書きたいのですが、どうすれば初期化できますか?

0 投票する
4 に答える
8616 参照

c# - 同じメソッドのC#サブクラス

2つのサブクラスを持つスーパークラスがあります。2つのサブクラスには、チャプターにコンテンツがあるかどうかをチェックするメソッドがあります。サブクラス1の場合、このメソッドはHasContent(intchapterID)であり、サブクラス2の場合、これはHasContent(intchapterID、intinstitution)です。ご覧のとおり、サブクラス2には追加のパラメーターがあります。両方の方法の目的は同じです。

HasContentメソッドをスーパークラスに入れることを考えていました。あなたは私がこれをする必要があると思いますか?もしそうなら、私はこれをどのように実装する必要がありますか?または、両方のメソッドを独自のサブクラスに配置する方が賢明ですか?

編集:

HasDocumentsの本体は次のようになります。Subclass1:

サブクラス2:

0 投票する
3 に答える
3321 参照

c# - オーバーライドされたWinFormコントロールの「デフォルト」値をどのように防ぐことができますか?

私はC#が何をどのように行うかを学び、把握しようとしています。私は歴史的にVisualFoxpro(VFP)開発者であり、アプリケーション全体で使用されるユーザーコントロールの独自のベースラインを作成することにより、長年の視覚的継承に多少甘んじています。

C#の類似点を学ぼうとして、私は何かに固執しています。フォント「Arial」、10ポイントで定義された独自のラベルコントロール(コントロールはラベルのサブクラス)を派生させたとします。次に、追加するフォームで、DesignerはFormクラスの「Designer.cs」部分に表示されるいくつかのプロパティ値を自動的に事前入力します。

フォームにコントロールを配置するたびに、フォント、色、サイズ、自動サイズなどが生成されないようにしたい。後でフォントを「Arial」10から「Tahoma」11に変更することにした場合は、すべてのフォーム(およびその他のカスタムコントロール)に戻って編集し、切り替える必要があります。

VFPでは、ベースクラスのいずれかを変更すると、すべてのフォームが自動的に変更を認識します。私は何も編集する必要はありません(サイズの影響による可能な配置を除いて)...しかし、色、フォント、およびその他すべてはVFPでは問題ありません...

C#では、クラスの新しい値/更新された値によって認識されるように、各フォームに戻って変更する必要があります...

これを回避する合理的な方法はありますか?

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

c# - Form のサブクラスのサブクラスが空で表示される

Forms特定のポップアップ機能 (MSN に似た、画面の右下にある小さなウィンドウ) を必要とする量が不確定なアプリケーションを作成しています。最初のフォームを書いた後、ファイルをコピーして新しいファイルを作成できると考えました。ここまでは順調ですね。しばらくして、フォームをサブクラス化し、ポップアップ コードを記述し、新しいクラスをサブクラスPopupForm化して他のフォームを作成し、ポップアップ コードを簡単に書き直すことができることに気付きました。それで私はそれをしましたが、今私のフォームはデザイナに正しく表示されません! それらは完全に白く (背景画像やコントロールはありません)、新しいコントロールをドラッグすることはできません。を置いてみました

新しいフォームのクラスから属性を削除しましたFormが、役に立ちませんでした。フォームの内容を変更できるようにする必要がありますが、何が問題なのかわかりません。そのため、これは煩わしく、混乱を招きます。

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

python - wx.SingleChoiceDialog が適切にサブクラス化されないのはなぜですか

wxpython SingleChoiceDialog クラスをサブクラス化しようとしています。一般的な機能を追加する SingleChoiceDialog を継承する TableChoiceDialog クラスがあり、より洗練された機能を追加するための 2 つのサブクラスがあります。基本的に私はOOPしています

__init__私のTableChoiceDialogクラスには、スーパークラスの を呼び出す行があります。

私が抱えている問題は、SingleChoiceDialog.__init__docstring (および wxPython API) によると、SingleChoiceDialog がメソッドの一部として self 引数を持っていないこと__init__です。

上記のように、プログラムはエラーを出力します:

self パラメーターを取り出すと、システムはSingleChoiceDialog最初の引数としてオブジェクトを期待していると不平を言います。これは、実際には self への参照が必要であることを示しているようです。

親の引数を取り出して、self を残して (他の 3 つは問題ないと確信しています)、システムは、4 が必要なときに 3 つの引数しか受け取っていないと不平を言います。4 を渡していると確信しています。

そう。私が犯した明白な間違いは何ですか?Pythonがオブジェクトを処理する方法を完全に誤解していますか(したがって、Pythonをかなり誤解しています)?OOP全体を誤解していますか?

助けてください。前もって感謝します

0 投票する
4 に答える
2555 参照

python - クラス内のクラスの属性の変更をインターセプトする-Python

私はpygameとpythonをいじっていますが、クラスの属性が変更されたときに関数を呼び出せるようにしたいと思っています。私の現在の解決策は次のとおりです。

これは正常に機能し、rect値を。で変更するとdofancystuffが呼び出されますFirsclass.rect = pygame.rect.Rect(0,0,100,100)。しかし、私が言うならFirstclass.rect.bottom = 3__setattr__そして、dofancystuffは呼び出されません。

だから私の質問は、サブクラスの属性への変更をどのようにインターセプトできるかということです。

編集:また、私がこれについて間違った方法で行っている場合は、Pythonに関してはあまり知識がないことを伝えてください。