2013-04-09 41 views
42

Tôi đang ghi lại một chương trình Java mà tôi đã phát triển và muốn biết liệu JavaDoc có được tạo ra cho một phương thức kế thừa (được ghi đè) nếu tôi chỉ ghi lại lớp cha?Các phương pháp ghi đè trong JavaDoc

Nếu tôi có một lớp được gọi là Vehicle với một phương pháp drive() trong, và một sub-class gọi Car với drive() phương pháp ghi đè, sẽ tài liệu cho các phương tiện phương pháp ổ đĩa được đưa vào Ô tô Phương pháp ổ đĩa nếu không Javadoc được đặt trong lớp Car?

+6

Bạn hãy thử nó? – BobTheBuilder

Trả lời

51

[I] muốn biết nếu javadoc sẽ được tạo ra cho một phương pháp di truyền (được ghi đè) nếu tôi chỉ ghi lại lớp cha?

Có. Nếu bạn không có các chú thích javadoc trên một lớp con, javadocs sẽ được tạo ra dựa trên các siêu lớp javadoc.

Nếu bạn xác định javadocs trong lớp con, chúng sẽ thay thế javadocs kế thừa, nhưng bạn có thể sử dụng {@inheritDoc} đến bao gồm các nhận xét javadoc siêu lớp tương ứng trong lớp con javadocs.

tham khảo:

24

Nếu bạn muốn sử dụng JavaDoc của phương pháp ghi đè, hãy sử dụng {@inheritDoc}. F. e. :

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

Xin lưu ý rằng hầu hết mọi phương pháp overriden đều thừa kế các tài liệu trên :). Bạn có thể đọc về nó trong oracle docs (nhờ gợi ý @Steve Kuo).

Công cụ Javadoc có khả năng sao chép hoặc "thừa kế" nhận xét phương pháp trong các lớp và giao diện trong hai trường hợp sau đây. Nhà thầu, các lĩnh vực và các lớp lồng nhau không kế thừa ý kiến ​​doc ... (1) Tự động kế thừa bình luận để điền vào thiếu văn bản ... (2) Rõ ràng kế thừa bình luận bằng {} @inheritDoc thẻ

Sử dụng @see nếu bạn muốn tham chiếu đến phương thức/quan trọng/tương tự. Ví dụ về các lớp 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 tự động kế thừa các tài liệu lớp cha, do đó, '{@inheritDoc}' là không cần thiết –

+2

Vâng, hoàn toàn chính xác, tôi sẽ thêm nó vào câu trả lời của tôi. Các tài liệu nói 'Công cụ Javadoc có khả năng sao chép hoặc" kế thừa "các chú thích phương thức trong các lớp và các giao diện trong hai trường hợp sau đây. Các hàm tạo, các trường và các lớp lồng nhau không thừa kế các chú thích doc.' – Eich

+0

Nó hữu ích trong Eclipse. Tôi không nghĩ rằng {} là cần thiết, tuy nhiên. – gerardw

Các vấn đề liên quan