Overridden methods in JavaDoc

JavaJavadoc

Java Problem Overview


I'm documenting a Java program that I have developed, and wanted to know if JavaDoc will be generated for an inherited method (which is overridden) if I just document the superclass?

If I have a class called Vehicle with a drive() method in, and a sub-class called Car with the drive() method overridden, will the documentation for the Vehicles drive method be included in the Cars drive method if no Javadoc is put in the Car class?

Java Solutions


Solution 1 - Java

> [I] wanted to know if JavaDoc will be generated for an inherited method (which is overridden) if I just document the superclass?

Yes. If you don't have javadoc comments on a subclass, javadocs will be be generated based on the superclasses javadoc.

If you define javadocs in the subclass they will replace the inherited javadocs, but you can use {@inheritDoc} to include the respective superclass javadoc comments in the subclass javadocs.

Reference:

Solution 2 - Java

If you want to use the JavaDoc of the overridden method, use {@inheritDoc}. F. e. :

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

Please notice that almost every overriden method also inherits the upper docs :) . You can read about it in the oracle docs (thanks for the hint @Steve Kuo) . > The Javadoc tool has the ability to copy or "inherit" method comments in classes and interfaces under the following two circumstances. Constructors, fields and nested classes do not inherit doc comments... (1) Automatically inherit comment to fill in missing text ... (2) Explicitly inherit comment with {@inheritDoc} tag

Use @see if you want to reference to a similar/important/... method. Example of the java.awt.Point class:

 /**
 * 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() { ... }

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionAlex BlundellView Question on Stackoverflow
Solution 1 - JavaStephen CView Answer on Stackoverflow
Solution 2 - JavaEichView Answer on Stackoverflow