問題タブ [overriding]

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

javascript - JavaScriptプロトタイプを使用してメソッドを呼び出す

オーバーライドされている場合、JavaScriptのプロトタイプメソッドからベースメソッドを呼び出すことは可能ですか?

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

java - Javaで@Overrideとは何ですか?

重複の可能性:
Java の @Override アノテーションをいつ使用し、その理由は?

@Overrideスーパークラスにそのメソッドがあることをコンパイラにチェックさせる以外に、メソッドに注釈を付ける理由はありますか?

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

c# - このようにしないと、C# で保護されたメンバーにアクセスできないのはなぜですか?

このコード:

次のエラーが生成されます。

タイプ 'C' の修飾子を介して保護されたメンバー 'CF(D)' にアクセスできません。修飾子はタイプ 'D' (またはそれから派生したもの) でなければなりません

彼らはいったい何を考えていたのでしょうか。(そのルールを変更すると何かが壊れるでしょうか?) そして、F を公開する以外にそれを回避する方法はありますか?


編集:これがなぜなのか理由がわかりました(Gregに感謝します)が、合理性についてはまだ少し当惑しています。与えられた:

D が EF を呼び出せないのはなぜですか?


エラーメッセージは編集されているため、タイプミスがある可能性があります。

0 投票する
8 に答える
26919 参照

c++ - サブクラス化時の静的変数のオーバーライド

私はクラスを持っています。それをAと呼びましょう。そのクラス定義内には次のものがあります。

つまり、パス オブジェクトへの静的な (クラス全体の) ポインターを宣言しています。このクラスのすべてのインスタンスは、同じ共有データ メンバーを持つようになります。このクラスに基づいて構築し、より特殊な形式にサブクラス化し、動作を階層化し、各クラスが独自のパス オブジェクトを持ちます (ただし、バウンディング ボックスの計算やペイント ルーチンの呼び出しなどの退屈なビットを繰り返す必要はありません)。 )。

クラスFを作成するためにサブクラス化する場合(たとえば)、FでAから継承された描画ルーチンを使用する必要がありますが、Fで宣言された静的(クラス全体)のパスオブジェクトを使用します。上記の宣言をプライベート セクション (および派生クラス F でそれを繰り返します) を保護セクションに配置しようとしましたが、すべて喜びがありませんでした。

なぜこれが起こっているのか、私はある程度見ることができます:

オブジェクトがクラス F であっても、F::path ではなく A::path を参照しています。

これを回避し、基本クラスで定義された描画コードを引き続き使用し、すべてのクラス (おそらく基本クラスを除く) を実際にインスタンス化できるようにしながら、各クラスが静的パス オブジェクトを維持できるようにするエレガントな方法はありますか?

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

actionscript - アクションスクリプトで実行時にセッター関数をオーバーライドするにはどうすればよいですか?

セッター関数とゲッター関数を備えた AS クラスがあります。このクラスのインスタンスの 1 つを微調整して、セッター関数がローカル変数に割り当てる前に入力を処理するようにする必要があります。

または、より精巧な方法で、以下の例で $$$ の代わりに何を使用すればよいですか?

0 投票する
10 に答える
106919 参照

c - C で関数呼び出しをオーバーライドする

呼び出しをログに記録するために、さまざまな API への特定の関数呼び出しをオーバーライドしたいのですが、実際の関数に送信される前にデータを操作したい場合もあります。

たとえばgetObjectName、ソース コードで関数を何千回も使用するとします。この関数の動作を変更して別の結果を確認したいので、一時的にこの関数をオーバーライドしたいことがあります。

次のような新しいソース ファイルを作成します。

通常どおりに他のすべてのソースをコンパイルしますが、API のライブラリにリンクする前に、まずこの関数にリンクします。オーバーライド関数内で実際の関数を呼び出せないことを除いて、これは正常に機能します。

リンク/コンパイル エラー/警告を取得せずに関数を「オーバーライド」する簡単な方法はありますか? 理想的には、リンク オプションをいじったり、プログラムの実際のソース コードを変更したりするのではなく、余分なファイルを 1 つか 2 つコンパイルしてリンクするだけで関数をオーバーライドできるようにしたいと考えています。

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

android - Android オーバーライド明示的インテント

私のアプリには、コンポーネント セット (明示的なインテント) を持つ に intent-filter応答するが必要です。以下に例を示します。Intent

は特定のコンポーネント ( ,) 用に作成されているintent-filterため、インテントをまったく検索せずに起動するだけです。これを行う方法はありますか? ありがとう、Isaac Waller PS: 「いいえ」と答えないでください。IntentActivity

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

perl - Perl でのオーバーライドされたメソッドの検出

先週、サブクラスのメソッドを誤ってオーバーライドしてしまい、2 度噛みつきました。私は継承のファンではありませんが、職場のアプリケーションでこれを (ab) 使用しています。私がやりたいのは、メソッドが親メソッドをオーバーライドしていることを示すための宣言構文を提供することです。このようなもの:

ここにはいくつかの問題があります。まず、メソッドのロードが何らかの理由で遅延した場合 (たとえば、AUTOLOAD を介してロードされたメソッドや、後でシンボル テーブルにインストールされたメソッド)、これはそれらのメソッドを検出しません。

継承ツリーのウォークも同様にコストがかかる可能性があります。Class::Sniffでこれを行いますが、コードの実行にはあまり適していません。継承ツリーをたどって、適切なシンボル テーブルに定義された CODE スロットがある場所を単純に一致させることができます。その方が高速ですが、メソッド キャッシュが無効になっている場合、それらの結果をキャッシュすると壊れてしまいます。

だから私は2つの質問があります.これは合理的なアプローチですか?メソッドキャッシュが変更されたかどうかを確認できるフックはありますか? (「perldoc perlobj」で「キャッシュ」を検索してください)。

もちろん、これは本番コードを壊すべきではありません.TEST_HARNESS環境変数がアクティブな場合にのみ失敗するか警告することを考えています(本番コードがTEST_HARNESSを設定する場合は、強制的に非アクティブにするための明示的な環境変数を持っています)何らかの理由で環境変数)。

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

visual-studio - Visual Studio & SubVersion : マシン固有のファイルについて

例として、app.config ファイルを含む単体テスト プロジェクトがあります。app.config ファイルは、ビルド サーバーで動作するように構成されています。しかし、テストをローカルで (ローカル データベースを使用して) 実行したい場合は、app.config を変更する必要があります...毎回... app.config を決して変更せずに、アプリをオーバーライドする別のファイルを作成する方法はありますか。設定構成?(Subversion で破損した app.config を誤ってコミットする人がないようにするには?)

(もちろん、web.config についても同じことがカウントされます...)

thx、リーベン・カルドエン

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

gridview - レンダリング中にグリッドビューの行を置き換える

グリッドビューにバインドされたデータテーブルがあり、RowDataBound イベントでフィールドの値をチェックして、グリッドビュー行に何を表示するかを決定します。

ただし、場合によっては、行のデータ値を計算できないときに、すべての列にまたがる単一のラベルを持つ行を表示したいことがあります。

グリッドビューがコントロールの削除/追加にバインドされている場合、単一行のレンダリングをオーバーライドする方法はありますか?