Java中this()与super()的用法区别解析

 更新时间:2025年08月15日 08:53:50   作者:三水彡彡  
this()调用本类构造函数复用代码,super()调用父类构造函数初始化继承,两者均需为构造函数首条语句,适用场景分别为代码复用和父类初始化,本文给大家介绍Java中this()与super()的用法区别,感兴趣的朋友跟随小编一起看看吧

this() 的用法

  • 功能:调用当前类的其他构造函数
  • 作用:避免构造函数中的代码重复
  • 限制:必须是构造函数的第一条语句
  • 适用场景:当类中存在多个构造函数且需要共享部分初始化逻辑时
class Car {
    private String color;
    private String model;
    // 无参构造函数
    public Car() {
        this("Unknown", "Unknown"); // 调用双参构造函数
    }
    // 双参构造函数
    public Car(String color, String model) {
        this.color = color;
        this.model = model;
    }
}

super() 的用法

  • 功能:调用父类的构造函数
  • 作用:初始化父类成员变量
  • 限制:必须是子类构造函数的第一条语句;若父类没有无参构造函数,必须显式调用
  • 适用场景:子类需要初始化父类部分时
class Vehicle {
    private String brand;
    public Vehicle(String brand) {
        this.brand = brand;
    }
}
class Car extends Vehicle {
    private String model;
    public Car(String brand, String model) {
        super(brand); // 调用父类构造函数
        this.model = model;
    }
}

关键区别

  • this() 调用当前类的构造函数,super() 调用父类的构造函数
  • 两者都必须是构造函数的第一条语句
  • this() 用于代码复用,super() 用于父类初始化

到此这篇关于Java中this()与super()的用法区别解析的文章就介绍到这了,更多相关java this()和super()用法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • MyBatis-Plus updateById不更新null值的方法解决

    MyBatis-Plus updateById不更新null值的方法解决

    用Mybatis-Plus的updateById()来更新数据时,无法将字段设置为null值,更新后数据还是原来的值,本文就来详细的介绍一下解决方法,具有一定的参考价值,感兴趣的可以了解一下
    2023-08-08
  • Spring Cloud原理详解

    Spring Cloud原理详解

    今天小编就为大家分享一篇关于Spring Cloud原理详解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-02-02
  • JavaSE多线程阻塞队列实现代码

    JavaSE多线程阻塞队列实现代码

    阻塞队列是一种线程安全的队列,可以用于多线程之间的数据传递和同步,下面这篇文章主要介绍了JavaSE多线程阻塞队列的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2025-12-12
  • SpringBoot整合Redis使用@Cacheable和RedisTemplate

    SpringBoot整合Redis使用@Cacheable和RedisTemplate

    本文主要介绍了SpringBoot整合Redis使用@Cacheable和RedisTemplate,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-07-07
  • SpringBoot集成Druid实现监控功能的示例代码

    SpringBoot集成Druid实现监控功能的示例代码

    这篇文章主要介绍了SpringBoot集成Druid实现监控功能,Druid是阿里巴巴开发的号称为监控而生的数据库连接池,可以很好的监控DB池连接和SQL的执行情况,天生就是针对监控而生的DB连接池,文中通过代码示例讲解非常详细,需要的朋友可以参考下
    2024-02-02
  • 如何在Spring Boot应用程序中配置了两个不同的SOAP Web服务端点

    如何在Spring Boot应用程序中配置了两个不同的SOAP Web服务端点

    这篇文章主要介绍了如何在Spring Boot应用程序中配置了两个不同的SOAP Web服务端点,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-08-08
  • 后端java压缩图片超详细图文教程

    后端java压缩图片超详细图文教程

    这篇文章主要给大家介绍了关于后端java压缩图片的相关资料,片压缩是一种广泛采用的技术,它不仅能显著减小文件大小,释放更多存储空间,还能提升图片加载速度,避免长时间等待,需要的朋友可以参考下
    2024-04-04
  • java8时间间隔类Duration和Period示例代码

    java8时间间隔类Duration和Period示例代码

    文章解释了Java中Duration和Period的区别,并提供了它们的特点、适用场景和常见用途,文中还提供了每个类的常用方法和示例,感兴趣的朋友一起看看吧
    2026-04-04
  • 详解APP微信支付(java后台_统一下单和回调)

    详解APP微信支付(java后台_统一下单和回调)

    这篇文章主要介绍了APP微信支付(java后台_统一下单和回调),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-05-05
  • java Socket实现网页版在线聊天

    java Socket实现网页版在线聊天

    这篇文章主要为大家详细介绍了java Socket实现网页版在线聊天具体代码,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-05-05

最新评论