58

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

如果我有一个使用 in 方法调用的类Vehicle,以及一个使用重写方法drive()调用的子类,如果 Car 类中没有放置 Javadoc,车辆驱动方法的文档是否会包含在 Cars 驱动方法中?Cardrive()

4

2 回答 2

73

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

是的。如果您没有对子类的 javadoc 注释,则将基于超类 javadoc 生成 javadoc。

如果您在子类中定义 javadocs,它们将替换继承的 javadocs,但您可以使用在子类 javadocs{@inheritDoc}包含相应的超类 javadoc 注释。

参考:

于 2013-04-09T15:24:44.523 回答
33

如果要使用被覆盖方法的 JavaDoc,请使用{@inheritDoc}. F.e. :

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

请注意,几乎每个被覆盖的方法也继承了上层文档:)。您可以在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() { ... }
于 2013-04-09T14:57:37.570 回答