java子类继承父类方法、或者接口中方法的javadoc注释

这篇具有很好参考价值的文章主要介绍了java子类继承父类方法、或者接口中方法的javadoc注释。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

说明

详情可以阅读:
https://docs.oracle.com/en/java/javase/19/docs/specs/javadoc/doc-comment-spec.html#method-comment-inheritance

  • 子类继承父类、或者子类实现接口,在子类中为了避免重复写注释,可以在子类方法注释的主要描述部分、或者@return、@param、@throws标记后面的文本参数部分插入{@inheritDoc}标记,来明确继承javadoc注释。
    java子类继承父类方法、或者接口中方法的javadoc注释,java,开发语言,文档注释继承

  • 注意:构造函数、属性、嵌套类不继承javadoc注释。

  • 如果不写明确继承标记{@inheritDoc},可能可以自动继承javadoc注释,也可能无法自动继承。

  • 在子类的方法中,如果觉着有些javadoc注释不需要继承,而要写个性化的,那就在子类的方法javadoc注释中重写这部分,其它的照样继承。例如注释的主要描述部分重写了,而参数、返回部分继承,是可以的。总之,就是缺哪一部分继承哪一部分。

示例

javadoc的主要描述、参数、返回都加了{@inheritDoc}

定义一个接口:

package com.thb;

public interface Parent {

    /**
     * 返回姓名的全称.
     * @param firstName 名字
     * @param secondName 姓
     * @return 姓名的全称
     */
    String method(String firstName, String secondName);
}

定义一个子类实现接口:

package com.thb;

public class Child implements Parent {

    /**
     * {@inheritDoc}
     * @param   firstName  {@inheritDoc}
     * @param   secondName  {@inheritDoc}
     * @return  {@inheritDoc}
     */
    @Override
    public String method(String firstName, String secondName) {
        return firstName + secondName;
    }
}

运行javadoc命令生成帮助文档:
java子类继承父类方法、或者接口中方法的javadoc注释,java,开发语言,文档注释继承
java子类继承父类方法、或者接口中方法的javadoc注释,java,开发语言,文档注释继承

打开生成的帮助文档,看看内容:
java子类继承父类方法、或者接口中方法的javadoc注释,java,开发语言,文档注释继承

JDK的代码样例:BufferedReader

package java.io.BufferedReader中的read函数:文章来源地址https://www.toymoban.com/news/detail-677769.html

/**
 * Reads characters into a portion of an array.
 *
 * <p> This method implements the general contract of the corresponding
 * {@link Reader#read(char[], int, int) read} method of the
 * {@link Reader} class.  As an additional convenience, it
 * attempts to read as many characters as possible by repeatedly invoking
 * the {@code read} method of the underlying stream.  This iterated
 * {@code read} continues until one of the following conditions becomes
 * true:
 * <ul>
 *
 *   <li> The specified number of characters have been read,
 *
 *   <li> The {@code read} method of the underlying stream returns
 *   {@code -1}, indicating end-of-file, or
 *
 *   <li> The {@code ready} method of the underlying stream
 *   returns {@code false}, indicating that further input requests
 *   would block.
 *
 * </ul>
 * If the first {@code read} on the underlying stream returns
 * {@code -1} to indicate end-of-file then this method returns
 * {@code -1}.  Otherwise this method returns the number of characters
 * actually read.
 *
 * <p> Subclasses of this class are encouraged, but not required, to
 * attempt to read as many characters as possible in the same fashion.
 *
 * <p> Ordinarily this method takes characters from this stream's character
 * buffer, filling it from the underlying stream as necessary.  If,
 * however, the buffer is empty, the mark is not valid, and the requested
 * length is at least as large as the buffer, then this method will read
 * characters directly from the underlying stream into the given array.
 * Thus redundant {@code BufferedReader}s will not copy data
 * unnecessarily.
 *
 * @param      cbuf  {@inheritDoc}
 * @param      off   {@inheritDoc}
 * @param      len   {@inheritDoc}
 *
 * @return     {@inheritDoc}
 *
 * @throws     IndexOutOfBoundsException {@inheritDoc}
 * @throws     IOException  {@inheritDoc}
 */
public int read(char[] cbuf, int off, int len) throws IOException {
    Object lock = this.lock;
    if (lock instanceof InternalLock locker) {
        locker.lock();
        try {
            return implRead(cbuf, off, len);
        } finally {
            locker.unlock();
        }
    } else {
        synchronized (lock) {
            return implRead(cbuf, off, len);
        }
    }
}

JDK的代码样例:FileInputStream中的覆盖函数transferTo

/**
 * {@inheritDoc}
 */
@Override
public long transferTo(OutputStream out) throws IOException {
    long transferred = 0L;
    if (out instanceof FileOutputStream fos) {
        FileChannel fc = getChannel();
        long pos = fc.position();
        transferred = fc.transferTo(pos, Long.MAX_VALUE, fos.getChannel());
        long newPos = pos + transferred;
        fc.position(newPos);
        if (newPos >= fc.size()) {
            return transferred;
        }
    }
    return transferred + super.transferTo(out);
}

到了这里,关于java子类继承父类方法、或者接口中方法的javadoc注释的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java 强制类型转换原理(父类转子类、子类转父类)

    在Java中,对象的强制转换(也称为类型转换)是将一个对象的引用转换为另一个类的引用,前提是这两个类之间存在继承或实现关系。强制转换可能会导致运行时异常,因为在转换的过程中,如果对象的实际类型与转换的目标类型不兼容,就会抛出ClassCastException异常。 分析

    2024年02月07日
    浏览(24)
  • JAVA中,继承父类和重写父类方法有什么区别?

    在Java中,继承和重写都是面向对象编程的重要概念,但它们有着完全不同的作用: 继承:继承是对象之间的一种关系,子类(派生类)会继承父类(基类)的属性(成员变量)和方法。这使得你可以使用父类的代码,并添加或改变类的行为,以适应新的需求。继承主要是为

    2024年02月10日
    浏览(42)
  • c++和QT子类调用父类方法

    c++调用方式 : 父类名::方法名 QT调用方式 : __super::方法

    2024年02月13日
    浏览(35)
  • C# 中什么是重写(子类改写父类方法)

    方法重写是指在继承关系中,子类重新实现父类或基类的某个方法。这种方法允许子类根据需要修改或扩展父类或基类的方法功能。在面向对象编程中,方法重写是一种多态的表现形式,它使得子类可以根据不同的需求和场景提供不同的方法实现。 方法重写的基本规则如下:

    2024年02月09日
    浏览(41)
  • Java父类强制转换为子类的三种情况(推荐)

    Father f = new Father(); Son s = (Son)f;//出错 ClassCastException Father f = new Son(); Son s = (Son)f;//可以 f只能用父类的方法 s可以用子类的所有方法 Son s = new Son(); Father f = (Father)s;//可以 f只能用父类的方法

    2024年02月08日
    浏览(33)
  • 我在VScode学Java继承(Java继承的特点、super关键字、super和this对比、方法重写、子类构造器)贰

    类的成员包括:成员变量;成员方法;构造方法 构造方法:不管什么修饰符都不可继承 成员变量:都可以继承,但注意一点(继承!=调用,私有的就不可调用) 成员方法:非私有可以。私有不可。 我的个人博客主页:如果’\\\'真能转义1️⃣说1️⃣的博客主页 关于Java基本语

    2024年02月14日
    浏览(36)
  • 父类对象的属性直接赋值给子类对象(使用copyProperties中的方法copyProperties)

    BeanUtils.copyProperties() 是 Apache Commons BeanUtils 包中提供的一个方法,用于将一个 JavaBean 对象的属性值赋值到另一个 JavaBean 对象中。该方法可以简化 JavaBean 之间的属性复制过程,避免手动编写大量的赋值代码。 以下是 BeanUtils.copyProperties() 方法的基本用法: 在上面的例子中,首

    2024年02月15日
    浏览(33)
  • java中接口多个实现类,如何指定实现类,根据子类类型选择实现方法

    在Java代码中,经常会遇到一个接口有多个实现的情况。而这些实现类的参数又是不同的子类,这时候我们该如何选择正确的实现方法呢? 我们可以通过判断参数的子类类型来选择正确的实现方法。具体实现可以使用Java中的instanceof,它可以判断一个对象是否是某个类的

    2024年02月12日
    浏览(27)
  • 链式-父类中返回子类对象

    一晃五年没写博客了,依旧再C#上耕耘,依旧没有啥建树,现在也不知道.net上还有多少人再使用,在这里分享一些自己觉得写的还算优雅的代码。 对于自己写着完的代码,我特别喜欢链式(来源于jQuery的影响吧),大部分时候链式就是将返回值为void类型的对象,返回this指针

    2024年02月05日
    浏览(26)
  • 【C/C++】父类指针指向子类对象 | 隐藏

    创作不易,本篇文章如果帮助到了你,还请点赞 关注支持一下♡𖥦)!! 主页专栏有更多知识,如有疑问欢迎大家指正讨论,共同进步! 🔥c++系列专栏:C/C++零基础到精通 🔥 给大家跳段街舞感谢支持!ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ c语言内容💖:

    2024年02月11日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包