2013-04-09 3 views
42

내가 개발 한 Java 프로그램을 문서화하고 있으며 상속 된 메서드 (재정의 됨)에 대해 JavaDoc이 생성되는지 알고 싶습니다.JavaDoc에서 재정의 된 메서드

난에 drive() 방법 Vehicle라는 클래스 및 재정의 drive() 방법 Car라는 하위 클래스에는 자바 독을 넣지 않은 경우 차량 구동 방법에 대한 설명서가 자동차 구동 방법에 포함됩니다이있는 경우 Car 클래스에서?

+6

시도 했습니까? – BobTheBuilder

답변

51

[나는]의 JavaDoc 난 그냥 슈퍼 클래스를 문서화하는 경우 (무시됩니다) 상속 된 메서드에 대해 생성 될 경우 알고 싶어?

예. 하위 클래스에 대한 javadoc 주석이없는 경우 javadocs는 수퍼 클래스 javadoc을 기반으로 생성됩니다. 당신이 하위 클래스의 javadoc를 정의하면

그들이 상속의 javadoc를 대체 할 것이다, 그러나 당신은 {@inheritDoc}에이 서브 클래스의 javadoc에 각각의 슈퍼 클래스의 javadoc 주석을 포함 할 수 있습니다.

참조 : 당신이

24

재정의 된 메서드의 JavaDoc을 사용하려면 {@inheritDoc}을 사용하십시오. F. e. :

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

거의 모든 재정의 된 방법이 또한 상위 문서를 상속받습니다. oracle docs (힌트 @Steve Kuo에 대한 감사)에서 그것에 대해 읽을 수 있습니다.

Javadoc 도구는 다음 두 가지 상황에서 클래스 및 인터페이스에서 메소드 주석을 복사하거나 "상속"할 수 있습니다. 생성자, 필드와 중첩 된 클래스 (2) 명시 적으로 당신이 경우 {@inheritDoc} 태그

사용 @see로 의견을 상속 ... (1) 자동으로 텍스트를 누락 채우기 위해 의견을 상속 ... 다큐 멘 테이션 코멘트를 상속하지 않습니다 비슷한/중요한/... 방법을 참조하고 싶습니다. 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이 자동으로 상위 클래스 docs를 상속하므로'{@inheritDoc} '은 필요 없습니다. –

+2

예, 맞습니다. 대답에 추가하겠습니다. 다음의 2 개의 상황에서는, Javadoc 툴이, 클래스 및 인터페이스로 메소드 코멘트를 카피 또는 "계승"하는 기능을 갖추고 있다고합니다. 생성자, 필드 및 중첩 클래스는 도큐멘트 주석을 상속받지 않습니다. ' – Eich

+0

Eclipse에서 유용합니다. 그러나 나는 {}이 필요하다고 생각하지 않습니다. – gerardw