58

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

メソッド in で呼び出さVehicleれたクラスと、オーバーライドされたメソッドdrive()で呼び出されたサブクラスがある場合、Javadoc が Car クラスに配置されていない場合、Vehicles ドライブ メソッドのドキュメントは Cars ドライブ メソッドに含まれますか?Cardrive()

4

2 に答える 2

73

[I] スーパークラスをドキュメント化するだけで、継承されたメソッド (オーバーライドされる) に対して JavaDoc が生成されるかどうかを知りたいですか?

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

サブクラスで javadoc を定義すると、継承された javadoc が置き換えられますが、サブクラスの javadoc にそれぞれのスーパークラスの javadoc コメント{@inheritDoc}含めるために使用できます。

参照:

于 2013-04-09T15:24:44.523 に答える
33

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

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

ほとんどすべてのオーバーライドされたメソッドも上位のドキュメントを継承していることに注意してください:)。それについては、オラクルのドキュメントで読むことができます(ヒント@Steve Kuoに感謝します)。

Javadoc ツールには、次の 2 つの状況下で、クラスおよびインターフェースのメソッド コメントをコピーまたは「継承」する機能があります。コンストラクタ、フィールド、およびネストされたクラスは、doc コメントを継承しません... (1) コメントを自動的に継承して、欠落しているテキストを埋めます ... (2) {@inheritDoc} タグで明示的にコメントを継承します

@see類似/重要/... メソッドを参照する場合に使用します。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() { ... }
于 2013-04-09T14:57:37.570 に答える