2013-04-09 22 views
42

Sto documentando un programma Java che ho sviluppato e volevo sapere se JavaDoc verrà generato per un metodo ereditato (che viene sovrascritto) se solo documentassi la superclasse?Metodi sottoposti a override in JavaDoc

Se ho una classe chiamata Vehicle con un metodo drive() in, e un sub-classe chiamata Car con il metodo drive() ignorato, sarà la documentazione per il metodo guidare i veicoli da includere nel metodo di guidare macchine se non Javadoc è messo nella classe Car?

+6

Hai provato esso? – BobTheBuilder

risposta

51

[I] voleva sapere se JavaDoc verrà generato per un metodo ereditato (che viene sovrascritto) se ho appena documentare la superclasse?

Sì. Se non si dispone di commenti javadoc su una sottoclasse, i javadoc verranno generati in base alle superclassi javadoc.

Se si definisce javadocs nella sottoclasse che andranno a sostituire i javadocs ereditati, ma è possibile utilizzare {@inheritDoc}-includere rispettivi commenti Javadoc superclasse nei javadocs sottoclasse.

Riferimento:

24

Se si desidera utilizzare JavaDoc del metodo sottoposto a override, utilizzare {@inheritDoc}. F. e. :

Si noti che quasi tutti i metodi sovrascritti ereditano anche i documenti superiori :). Puoi leggere su di esso nel oracle docs (grazie per il suggerimento @Steve Kuo).

Lo strumento Javadoc ha la capacità di copiare o "ereditare" i commenti del metodo in classi e interfacce nelle seguenti due circostanze. Costruttori, campi e classi nidificate non ereditano commenti doc ... (1) ereditano automaticamente commento per riempire il testo mancante ... (2) in modo esplicito ereditare commento con {} @inheritDoc tag

Usa @see se voglio fare riferimento a un metodo simile/importante/... Esempio della classe 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() { ... } 
+7

JavaDoc eredita automaticamente i documenti della classe genitore, quindi '{@inheritDoc}' non è necessario –

+2

Sì, assolutamente corretto, lo aggiungerò alla mia risposta. I documenti dicono 'Lo strumento Javadoc ha la capacità di copiare o" ereditare "i commenti del metodo in classi e interfacce nelle seguenti due circostanze. Costruttori, campi e classi nidificate non ereditano i commenti dei docenti. – Eich

+0

È utile in Eclipse. Non penso che i {} siano necessari, comunque. – gerardw

Problemi correlati