Androidの@Overrideアノテーション

私はJavaとAndroidのプログラミングには新しいです。私が持っている問題は、いくつかの本、フォーラム、ウェブサイトをサーフィンした後、@overrideアノテーションが何をしているかをはっきりと理解できていないことです。私はそれがメソッドが乗り越えられているときを意味します。しかし、なぜそれがアンドロイドに必要です。私はそれがJavaのソースコードではめったにありませんが、すべての時間アンドロイドで見ることができます。

10

8 答え

古い Javaソースコードではめったに見られないかもしれません。なぜなら、これはかなり最近の技術革新だからです。

これはセーフティネットです。実際には、何かを上書きするために試ししようとしていることをコンパイラに伝えているので、メソッドが 上書きしないと失敗します。名前のタイプミスが原因です。これはC#のメソッド宣言の一部である override のようなものです。これは、あなたが何をしているのかを明確にするのに役立ちます。これは間違いを防ぐのに役立ち、将来の読者にコードをより明確にします。

21
追加された
ありがとうございました。私はここですべての答えから何かを取り去った。私はスタックして新しくなったので、それぞれの答えに感謝しなければ怒らないでください。私は直接java情報に行き、抽象クラスと多義性を探しました。 onCreate()を呼び出すと、私の理解を反復するために、OSが使用する基本的なアクティビティを作成するための基本コンポーネントが用意されています。 @overideが起動すると、基本的にonCreate()を乗り越えて、あなたの意図があなたのプログラムにあるようにします。私はそれよりも難しいと思ったが、少なくとも私はそれを作った!
追加された 著者 JBlaza,

あなたが@Overrideアノテーションの基本を理解しているのであれば、それは単純に2つの目的を満たすメタデータ情報です:

  • インタフェースまたは拡張クラスで定義されているため、オーバーライドされているメソッドを記述する

  • これは、部分的に宣言されたメソッドとオーバーライドされているメソッドを正しく識別するのに役立ちます。アンドロイドではフラグメント、アクティビティ、サービス、BroadcastReceiverなどから拡張されます。 p>

あなたがJavaスタイルでそれを見ることができないという点については、それはかなり新しい機能(2005年以来の新機能ではない)であるだけでなく、少なくともJavaでは多くの方法をSwingにオーバーライドしないためですまたはSWTであり、最も一般的にはTableModelや拡張HttpServletクラスのServlet

7
追加された

because you override a lot of methods , example ;when you create your Activity ( which extends Activity ) you need to override the method onCreate( Bundle savedInstanceState) to initialize your Activity , and so on , every time you override a method from a mother Class , eclipse add the annotation @override

2
追加された

@Override means that you want to re-define function from superclass in child class. Read more about abstract methods, classes, polymorphism.

2
追加された

私はAndroidプログラミングについては何も知らないが、@ Override-annotationは、メソッドがsupeclassメソッドをオーバーライドする(またはJava 1.6でインターフェイスメソッドを実装する)ことを示すために使用されます。アノテーションの純粋な文書化の意味に加えて、Eclipseは、メソッドが実際にスーパークラスメソッドをオーバーライドしないと警告します(設定に応じてエラーをマークします)。 -狩猟)。たぶんAndroidのコンパイラでは、デフォルトではすべてのオーバーライドメソッドに@Overrideアノテーションを付ける必要があります。

1
追加された

@override means you are borrowing methods from available class and are not defined by the programmer.

1
追加された
受け入れられた答えを見てください
追加された 著者 raam86,

JavaとAndroidの両方には必要ありません。 あなたは新しい活動、メソッドなどを作成するときにeclipseが自動的にそれを追加するので、あなたはAndroidプログラムでそれを頻繁に見ます。 @Overrideアノテーションを削除すると、何も追加されません。

0
追加された

@overideはC ++の仮想メソッドのようなものですが、アンドロイドのOncreateメソッドはwxWidgetの仮想ブールOninit()に似ています。このメソッドはアンドロイド(Oncreate)がGUIを構築するために使用します。 Oncreateのコードも変更されているため、これをオーバーライドする必要があります。 ライブラリによって使用され、カスタマイズしたいメソッドをすべてオーバーライドします。 Oninit()のようなOncreat()は、カスタマイズしたいメソッドです。

0
追加された