我正在记录我开发的Java程序,并想知道如果我只是记录超类,是否会为继承的方法(被覆盖)生成JavaDoc?
如果我有一个名为Vehicle
的课程,其中有一个drive()
方法,而一个名为Car
的子课程已被覆盖drive()
方法,那么该文档将为如果没有将Javadoc放入Car类中,则车辆驾驶方法应包含在Cars驾驶方法中吗?
答案 0 :(得分:62)
[我]想知道如果我只记录超类,是否会为继承的方法(被覆盖)生成JavaDoc?
是。如果你没有对子类的javadoc注释,将基于超类javadoc生成javadoc。
如果在子类中定义javadoc,它们将替换继承的javadoc,但是您可以在子类javadocs中使用{@inheritDoc}
来包含相应的超类javadoc注释。
参考:
答案 1 :(得分:29)
如果要使用重写方法的JavaDoc,请使用{@inheritDoc}
。 F. e。 :
/**
* {@inheritDoc}
*/
@Override
public double getX() { ... }
请注意,几乎每个overriden方法也都继承了上层文档:)。你可以在oracle docs中阅读它(感谢提示@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() { ... }