タグ付けされた質問 「overriding」

オブジェクト指向プログラミングにおけるメソッドのオーバーライドは、サブクラスまたは子クラスが、スーパークラスまたは親クラスの1つによってすでに提供されているメソッドの特定の実装を提供できるようにする言語機能です。


12
プロジェクトをEclipseにインポートした後の「スーパークラスメソッドをオーバーライドする必要がある」エラー
プロジェクトをEclipseに再インポートする必要がある場合(Eclipseを再インストールした場合、またはプロジェクトの場所を変更した場合)は、オーバーライドされたメソッドのほとんどすべてが正しくフォーマットされていないため、エラーが発生します。 メソッドはスーパークラスメソッドをオーバーライドする必要があります これは、何らかの理由でAndroidプロジェクトで発生することであり、メソッドの引数の値が常に入力されるとは限らないため、手動で手動で入力する必要があることに注意してください。例えば: list.setOnCreateContextMenuListener(new OnCreateContextMenuListener() { //These arguments have their correct names public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { } }); 最初は次のように入力されます: list.setOnCreateContextMenuListener(new OnCreateContextMenuListener() { //This methods arguments were not automatically provided public void onCreateContextMenu(ContextMenu arg1, View arg2, ContextMenuInfo arg3) { } }); 奇妙なことに、コードを削除してEclipseが自動的にメソッドを再作成すると、すでに持っているのと同じ引数名が使用されるため、問題の場所が本当にわかりません。それ以外は、メソッドを自動フォーマットします私。 これは、オーバーライドされたメソッドをすべて手動で手動で再作成しなければならないので、非常に面倒になります。なぜこれが起こるのか、またはそれを修正する方法を誰かが説明できる場合。とてもうれしくなる。 多分それは別のメソッドの引数の中にあるメソッドをフォーマットしている方法が原因ですか?



21
ポリモーフィズムvsオーバーライドvsオーバーロード
Javaに関して、誰かが尋ねると: ポリモーフィズムとは何ですか? 思いのオーバーロードまたはオーバーライド許容答えは? それだけではない。 実装のないメソッドを定義した抽象基本クラスがあり、そのメソッドをサブクラスで定義した場合でも、それはオーバーライドされますか? 過負荷は確かに正しい答えではないと思います。

7
オーバーライドする場合は、基本クラスの仮想関数を呼び出すことができますか?
クラスがFooあり、次のBarように設定するとします。 class Foo { public: int x; virtual void printStuff() { std::cout << x << std::endl; } }; class Bar : public Foo { public: int y; void printStuff() { // I would like to call Foo.printStuff() here... std::cout << y << std::endl; } }; コードで注釈を付けたように、オーバーライドしている基本クラスの関数を呼び出せるようにしたいと思います。Javaにはsuper.funcname()構文があります。これはC ++で可能ですか?

10
ホームボタンのように機能するように戻るボタンをオーバーライドする
戻るボタンを押すと、アプリケーションが破棄された状態ではなく、停止した状態になります。 Android ドキュメントではそれは述べています: ...すべてのアクティビティに、[戻る]が押されたときに破棄されるという動作があるわけではありません。ユーザーがミュージックアプリケーションで音楽の再生を開始し、[戻る]を押すと、アプリケーションは通常のバック動作を上書きし、プレーヤーのアクティビティが破棄されないようにし、アクティビティが表示されなくなっても音楽の再生を継続します この機能を自分のアプリケーションに複製するにはどうすればよいですか? 3つの可能性があると思います... 戻るボタンの押下をキャプチャし(以下を参照)、ホームボタンが呼び出すメソッドを呼び出します。 @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if ((keyCode == KeyEvent.KEYCODE_BACK)) { Log.d(this.getClass().getName(), "back button pressed"); } return super.onKeyDown(keyCode, event); } 戻るボタンの押下をキャプチャしてから、ホームボタンの押下を偽装します。 [戻る]ボタンを押すと、ホーム画面のアクティビティが開始され、アプリケーションのアクティビティが停止状態になります。 編集: 私はサービスについて知っており、この問題に関連するアプリケーションでサービスを使用しています。この質問は特に、戻るボタンを押したときにアクティビティを破棄状態ではなく停止状態にすることに関するものです。

7
同じメソッドを使用して、クラスに2つのインターフェースを実装します。どのインターフェイスメソッドがオーバーライドされますか?
同じメソッド名とシグニチャーを持つ2つのインターフェース。しかし、単一のクラスによって実装された場合、コンパイラーはどのメソッドがどのインターフェースに対応するかをどのように識別するのでしょうか? 例: interface A{ int f(); } interface B{ int f(); } class Test implements A, B{ public static void main(String... args) throws Exception{ } @Override public int f() { // from which interface A or B return 0; } }



4
派生クラスでオーバーライドされた関数が基本クラスの他のオーバーロードを隠すのはなぜですか?
コードを考えてみましょう: #include <stdio.h> class Base { public: virtual void gogo(int a){ printf(" Base :: gogo (int) \n"); }; virtual void gogo(int* a){ printf(" Base :: gogo (int*) \n"); }; }; class Derived : public Base{ public: virtual void gogo(int* a){ printf(" Derived :: gogo (int*) \n"); }; }; int main(){ …

12
JavaScript:alert()のオーバーライド
alert()JavaScriptで関数をオーバーライドした経験はありますか? どのブラウザがこれをサポートしていますか? これをサポートしているブラウザのバージョンはどれですか? 関数をオーバーライドする際の危険は何ですか?


14
新規とオーバーライドの違い
次の違いは何ですか? ケース1:基本クラス public void DoIt(); ケース1:継承されたクラス public new void DoIt(); ケース2:基本クラス public virtual void DoIt(); ケース2:継承されたクラス public override void DoIt(); ケース1と2はどちらも、私が実行したテストに基づいて同じ効果があるようです。違いはありますか、それとも望ましい方法ですか?

5
Ruby on Railsでセッターメソッドをオーバーライドする正しい方法は何ですか?
Ruby on Rails 3.2.2を使用していますが、次の方法がmyクラス属性のセッターメソッドをオーバーライドする「適切な」/「正しい」/「確実な」方法であるかどうかを知りたいです。 attr_accessible :attribute_name def attribute_name=(value) ... # Some custom operation. self[:attribute_name] = value end 上記のコードは期待どおりに動作するようです。しかし、上記のコードを使用することで、将来的に問題が発生するかどうか、少なくとも、Ruby on Railsで「予想されるはずの問題」/「発生する可能性のある問題」について知りたいと思います。それがセッターメソッドをオーバーライドする正しい方法でない場合、正しい方法は何ですか? 注:コードを使用する場合 attr_accessible :attribute_name def attribute_name=(value) ... # Some custom operation. self.attribute_name = value end 次のエラーが発生します。 SystemStackError (stack level too deep): actionpack (3.2.2) lib/action_dispatch/middleware/reloader.rb:70

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.