2013-04-09 20 views
42

私が開発したJavaプログラムを文書化していて、スーパークラスを文書化するだけで、継承されたメソッド(オーバーライドされている)に対してJavaDocが生成されるかどうかを知りたいですか?JavaDocでオーバーライドされたメソッド

私はdrive()方法でVehicleというクラス、および上書きdrive()方法Carと呼ばれるサブクラスを持っている場合は何のJavadocが置かれていない場合、車の駆動方法のドキュメントは、車の駆動方式に含まれます車のクラスで?

+6

てみましたか? – BobTheBuilder

答えて

51

[I]はjavadocが、私はちょうどスーパークラスを文書化した場合(上書きされる)継承されたメソッドのために生成されるかどうかを知りたいですか?

はい。サブクラスに対してjavadocコメントがない場合、javadocはスーパークラスjavadocに基づいて生成されます。

あなたはサブクラスでjavadocを定義した場合、彼らは継承されたjavadocを置き換えられますが、あなたが{@inheritDoc}を使用することができますが、サブクラスのjavadocでそれぞれのスーパークラスのJavadocコメントがあります。

参考:あなたはそれを

24

オーバーライドされたメソッドのJavaDocを使用する場合は、{@inheritDoc}を使用します。 F. :

/** 
    * {@inheritDoc} 
    */ 
@Override 
public double getX() { ... } 

ほとんどすべてのオーバーライドされたメソッドも上位のドキュメントを継承しています。 oracle docs(ヒント@Steve Kuoありがとう)でそれについて読むことができます。

Javadocツールには、次の2つの状況で、クラスとインタフェースのメソッドコメントをコピーまたは継承する機能があります。コンストラクタ、フィールドとネストされたクラスは、ドキュメンテーションコメントを継承しません...(1)自動的に不足しているテキストを記入するコメントを継承...(2)明示的に{@inheritDoc}タグとコメントを継承

使用@seeあなたの場合同様の/ important/...メソッドを参照したい。 java.awt.Pointクラスの例:

/** 
* Returns the location of this point. 
* This method is included for completeness, to parallel the 
* <code>getLocation</code> method of <code>Component</code>. 
* @return  a copy of this point, at the same location 
* @see   java.awt.Component#getLocation 
* @see   java.awt.Point#setLocation(java.awt.Point) 
* @see   java.awt.Point#setLocation(int, int) 
* @since  1.1 
*/ 
public Point getLocation() { ... } 
+7

JavaDocは自動的に親クラスのドキュメントを継承するので、 '{@inheritDoc}'は不要です。 –

+2

はい、絶対に間違いありません。ドキュメントは、 'Javadocツールは、以下の2つの状況下で、クラスとインターフェースのメソッドコメントをコピーするか「継承する」能力を持っています。コンストラクタ、フィールド、ネストされたクラスはドキュメントコメントを継承しません。 ' – Eich

+0

Eclipseで便利です。しかし、私は{}が必要だとは思わない。 – gerardw

関連する問題