問題タブ [inheritance]

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 に答える
661 参照

ruby-on-rails - 単一テーブルの継承の問題を見つける

次の 3 つの Rails クラスがあり、これらはすべて Rails の単一テーブル継承を使用して 1 つのテーブルに格納されています。

StockThingTemplateのIDを持っている場合、150論理的にこれを行うことができるはずです:

実際、これはうまくいきます。

動作すると、次の SQL クエリが生成されます。

機能しない場合は、次の SQL クエリが生成されます。

SQLは想定どおりに機能していますが、問題は、あるSQLセットを一度生成し、別のセットを別のセットで生成するのはなぜですか。文字通りまったく同じコードです。

ノート:

  • 私はレール1.2に乗っています
  • すでにいろいろなところで試していrequire 'stock_thing_template'ます。効果がないか、他の問題を引き起こします
0 投票する
11 に答える
259100 参照

python - Pythonで「スーパー」は何をしますか? - super().__init__() と明示的なスーパークラス __init__() の違い

次の違いは何ですか:

と:

super単一継承のみのクラスでかなり多く使用されているのを見てきました。多重継承で使用する理由はわかりますが、この種の状況で使用する利点については不明です。

0 投票する
14 に答える
188899 参照

c# - コンストラクタを継承するには?

多くのコンストラクターと仮想メソッドを持つ基本クラスを想像してください

そして今、仮想メソッドをオーバーライドする子孫クラスを作成したいと思います:

そして、さらにいくつかのことを行う別の子孫:

すべてのコンストラクターを Foo から Bar と Bah にコピーする必要がありますか? そして、Foo でコンストラクターの署名を変更した場合、Bar と Bah でそれを更新する必要がありますか?

コンストラクタを継承する方法はありませんか? コードの再利用を促進する方法はありませんか?

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

xaml - SilverlightのXAMLで定義されたユーザーコントロールから正しく継承する方法

XAMLを使用して外観を定義するユーザーコントロール(Silverlight)がある場合、カスタマイズされたバージョンを作成するにはどうすればよいですか?

つまり、MyControl.xamlとMyControl.xaml.csがあります

「SpecializedControl」子クラスが必要な場合はどうすればよいですか?新しいコードファイルを作成してから、MyControlから継承すると仮定します。しかし、基本クラスの外観を変更したい場合はどうすればよいですか?

0 投票する
7 に答える
25034 参照

python - Python 継承 - 関数を無効にする方法

C++ では、子クラスでプライベートとして宣言することにより、親のクラスの関数を無効にすることができます。これはPythonでどのように行うことができますか? IE 子のパブリック インターフェイスから親の関数を非表示にするにはどうすればよいですか?

0 投票する
7 に答える
17260 参照

c++ - 子仮想関数を呼び出す C++ 親クラス

次のように、純粋な仮想親クラスで関数の子実装を呼び出す必要があります。

これは機能するはずですが、リンクされていないエラーが発生します:/ これは VC++ 2k3 を使用しています

それともうまくいかないのですか、私は間違っていますか?

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

asp.net - asp:Imageまたはasp:ImageButtonからの中断?

このロジックをコントロールに入れて、画像の正しいURLを作成しました。私のコントロールは基本的に画像を表示する必要がありますが、srcは実際には画像サーバーを指すさまざまなパラメーターに基づく複雑な文字列です。

そこで、asp:Imageから派生したコントロールMyImageを作成することにしました。これは魅力のように機能します。今、私は同じロジックが必要ですが、私の画像はクリックに応答する必要があります。つまり、「MyImage」はサイトに画像を表示するために使用されますが、まれにクリック可能にしたい場合があります。

私は3つの選択肢があったと思います。

  1. MyImageを、asp:Imageではなくasp:ImageButtonから派生するように変更します。
  2. MyImageから新しいMyClickImageにすべてのコードをコピーし、asp:ImageButtonから派生します。
  3. MyImageにロジックをラップしてハイパーリンクを追加し、そのハイパーリンクにIPostbackHandlerを実装して、イベントを処理するロジックを追加します。

明らかに、2つのほぼ同じコントロールを維持する必要があるため、オプション2)の使用は避けたいと思います。オプション1)の問題点は、私が見ているように(おそらく私は間違っていますか?)、クリック可能ではないはずのサイト上のすべての画像が自動的にクリック可能になることです。オプション3)は、状態、イベントを維持し、リンクを手動で構築する必要があるため、非常に複雑に見えます。

私は「あなたは愚かです、クリック可能にしたくないときはプロパティ「x」をfalseに設定するだけです」のような簡単な答えを探しています-しかし、私が誤解していなければ、それはそれほど明白ではなく、もちろんもっと手の込んだ答えでいいでしょう:)

編集:3番目のオプションを追加しました-そもそもそこに置くのを忘れました:)

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

c++ - C++ での継承

ここに私の問題があります: 基本クラスから継承するクラスで呼び出したい .h ファイルで定義された仮想メソッドがあります。残念ながら、派生クラスのメソッドは呼び出されません。私がやろうとしていることを実装するためのより良い方法はありますか?

これが私の話題のクラスです

ofxSOBuzz.cpp

次に、別のクラスで次のように呼び出します。

上記のメソッドでは、すべてが ofxBaseSndObj オブジェクトを拡張する多くの種類のオブジェクトの 1 つを渡すことができる必要があります。提案や指針をいただければ幸いです。ありがとう!

0 投票する
11 に答える
46004 参照

python - Python のプロパティと継承

サブクラスで上書きしたいプロパティ(getメソッド)を持つ基本クラスがあります。私の最初の考えは次のようなものでした:

これは機能しません (サブクラス bar.age は 11 を返します)。機能するラムダ式を使用したソリューションを見つけました:

これは、プロパティを使用してサブクラスで上書きするための正しい解決策ですか、それともこれを行うための他の推奨される方法はありますか?

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

java - Javaでジェネリックパラメータを使用してメソッドをオーバーライドしますか?

クラスEmailMonitor.javaによってサブクラス化された抽象クラスMonitor.javaがあります。

メソッド:

Monitor.javaで定義されており、 EmailMonitor.javaでオーバーライドする必要があります。

現在、次のようにEmailMonitor.javaでオーバーライドされたメソッドがあります。

ただし、これによりコンパイル時エラーが発生します。

Name clash: The method performMonitor(List<EmailAccount>) of type EmailMonitor has the same erasure as performMonitor(Lis<? extends MonitorAccount> emailAccounts) of type Monitor but does not override it

EmailAccountは のサブクラスでMonitorAccountあるため、(少なくとも私の考えでは) このようにオーバーライドすることは完全に理にかなっています。ただし、コンパイラが私のロジックに満足していないのを見て、コンパイル時のチェックを維持しながら、すべての呼び出しが他のタイプのリストではなくEmailMonitor.performMonitor()のリストを受け取ることを確認しながら、これを正しく行うにはどうすればよいですか? EmailAccountMonitorAccount