web-dev-qa-db-fra.com

Méthodes remplacées dans JavaDoc

Je documente un programme Java que j'ai développé et je voulais savoir si JavaDoc sera généré pour une méthode héritée (qui est remplacée) si je documente simplement la superclasse?

Si j'ai une classe appelée Vehicle avec une méthode drive() dans, et une sous-classe appelée Car avec la méthode drive() remplacée, le la documentation de la méthode de conduite des véhicules soit-elle incluse dans la méthode de conduite des voitures si aucun Javadoc n'est placé dans la classe voiture?

51
Alex Blundell

[Je] voulais savoir si JavaDoc sera généré pour une méthode héritée (qui est surchargée) si je viens de documenter la superclasse?

Oui. Si vous n'avez pas de commentaires javadoc sur une sous-classe, les javadocs seront générés en fonction des superclasses javadoc.

Si vous définissez des javadocs dans la sous-classe, ils remplaceront les javadocs hérités, mais vous pouvez utiliser {@inheritDoc} à inclure les commentaires javadoc de superclasse respectifs dans les javadocs de sous-classe.

Référence:

64
Stephen C

Si vous souhaitez utiliser le JavaDoc de la méthode substituée, utilisez {@inheritDoc}. F. e. :

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

Veuillez noter que presque toutes les méthodes remplacées héritent également des documents supérieurs :). Vous pouvez lire à ce sujet dans le Oracle docs (merci pour l'astuce @Steve Kuo).

L'outil Javadoc a la possibilité de copier ou "hériter" des commentaires de méthode dans les classes et les interfaces dans les deux circonstances suivantes. Les constructeurs, les champs et les classes imbriquées n'héritent pas des commentaires de doc ... (1) Héritent automatiquement du commentaire pour remplir le texte manquant ... (2) Héritent explicitement du commentaire avec la balise {@inheritDoc}

Utilisation @see si vous voulez faire référence à une méthode similaire/importante/.... Exemple de Java.awt.Point classe:

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