在JavaDoc中重写的方法

Ale*_*ell 53 java javadoc

我正在记录我开发的Java程序,并想知道如果我只记录超类,是否会为继承的方法(被覆盖)生成JavaDoc?

如果我有一个Vehicle使用drive()方法调用的类,并且Car使用drive()方法覆盖调用的子类,如果没有将Javadoc放入Car类中,那么Vehicle驱动方法的文档是否会包含在Cars驱动方法中?

Ste*_*n C 66

[我]想知道如果我只记录超类,是否会为继承的方法(被覆盖)生成JavaDoc?

是.如果你没有对子类的javadoc注释,将基于超类javadoc生成javadocs.

如果在子类中定义的javadoc,他们将取代继承的javadoc,但可以使用{@inheritDoc}包括在子类的javadoc各自的超javadoc注释.

参考:


Eic*_*ich 31

如果要使用重写方法的JavaDoc,请使用{@inheritDoc}.F. e.:

/**
  * {@inheritDoc}
  */
@Override
public double getX() { ... }
Run Code Online (Sandbox Code Playgroud)

请注意,几乎每个overriden方法也都继承了上层文档:).您可以在oracle文档中阅读它(感谢提示@Steve Kuo).

Javadoc工具能够在以下两种情况下复制或"继承"类和接口中的方法注释.构造函数,字段和嵌套类不继承文档注释...(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() { ... }
Run Code Online (Sandbox Code Playgroud)

  • JavaDoc自动继承父类docs,因此不需要`{@inheritDoc}` (9认同)
  • 是的,绝对正确,我会将它添加到我的答案中.文档说:"Javadoc工具能够在以下两种情况下在类和接口中复制或"继承"方法注释.构造函数,字段和嵌套类不继承doc注释 (2认同)