Da the 1.4.2 Javadoc manual
Algoritmo per Ereditare Metodo Commenti - Se un metodo non dispone di un commento di documentazione, o ha un tag {} @inheritDoc, le ricerche strumento Javadoc per un commento applicabile utilizzando la seguente algoritmo, che è stato progettato per trovare il più specifico commento di documentazione del caso, dando la preferenza alle interfacce sopra superclassi:
- Cerca in ogni interfaccia direttamente implementato (o estesa) nell'ordine in cui appaiono in seguito la parola che ho mplements (o extends) nella dichiarazione del metodo. Utilizzare il primo commento del documento trovato per questo metodo.
- Se il passaggio 1 non è riuscito a trovare un commento di documentazione, applicare ricorsivamente l'intero algoritmo per ogni interfaccia direttamente implementato (o estesa), nello stesso ordine in cui sono stati esaminati nella fase 1.
- Se il passaggio 2 non è riuscito a trovare un doc commento e questa è una classe diversa da Object (non un'interfaccia): 1. Se la superclasse ha un commento doc per questo metodo, usarlo. 2. Se il passaggio 3a non è riuscito a trovare un commento di un doc, ricorre in modo ricorsivo l'intero algoritmo alla superclasse.
credo (anche se potrei sbagliarmi) che questo algoritmo di base si applica ancora a Java 1.5 e 1.6 ... anche se in realtà sarebbe tremendamente bello di Sun di pubblicare un documento definitivo completo autonomo per ogni versione del set di strumenti ... Immagino che sia un overhead che non possono permettersi, almeno per un set di strumenti gratuito.
Cheers. Keith.
Edit:
Ecco un esempio veloce e sporco.
Codice
package forums;
interface Methodical
{
/**
* A no-op. Returns null.
* @param i int has no effect.
* @return int[] null.
*/
public int[] function(int i);
}
interface Methodological extends Methodical
{
/**
* Another no-op. Does nothing.
*/
public void procedure();
}
class Parent implements Methodological
{
@Override
public int[] function(int i) {
return null;
}
@Override
public void procedure() {
// do nothing
}
}
class Child extends Parent
{
/** {@inheritDoc} */
@Override
public int[] function(int i) {
return new int[0];
}
/** {@inheritDoc} */
@Override
public void procedure() {
System.out.println("I'm a No-op!");
}
}
public class JavaDocTest
{
public static void main(String[] args) {
try {
new Child().procedure();
} catch (Exception e) {
e.printStackTrace();
}
}
}
Javadoc
C:\Java\home\src\forums>javadoc -package -sourcepath . JavaDocTest.java
Loading source file JavaDocTest.java...
Constructing Javadoc information...
Standard Doclet version 1.6.0_12
Building tree for all the packages and classes...
Generating forums/\Child.html...
Generating forums/\JavaDocTest.html...
Generating forums/\Methodical.html...
Generating forums/\Methodological.html...
Generating forums/\Parent.html...
Generating forums/\package-frame.html...
Generating forums/\package-summary.html...
Generating forums/\package-tree.html...
Generating constant-values.html...
Building index for all the packages and classes...
Generating overview-tree.html...
Generating index-all.html...
Generating deprecated-list.html...
Building index for all classes...
Generating allclasses-frame.html...
Generating allclasses-noframe.html...
Generating index.html...
Generating help-doc.html...
Generating stylesheet.css...
Produce file: /// C: /Java/home/src/forums/index.html
function
public int[] function(int i)
A no-op. Returns null.
Specified by:
function in interface Methodical
Overrides:
function in class Parent
Parameters:
i - int has no effect.
Returns:
int[] null.
procedure
public void procedure()
Another no-op. Does nothing.
Specified by:
procedure in interface Methodological
Overrides:
procedure in class Parent
Il documento javadoc cui ho fatto riferimento nel mio post è relativo alla versione 1.6 di J2SE. –