找回密码
 立即注册
首页 业界区 安全 Java中this()与super()的区别解析

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

言晓莉 2025-8-6 12:35:49
this() 的用法

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

  • 功能:调用父类的构造函数
  • 作用:初始化父类成员变量
  • 限制:必须是子类构造函数的第一条语句;若父类没有无参构造函数,必须显式调用
  • 适用场景:子类需要初始化父类部分时
  1. class Vehicle {
  2.     private String brand;
  3.    
  4.     public Vehicle(String brand) {
  5.         this.brand = brand;
  6.     }
  7. }
  8. class Car extends Vehicle {
  9.     private String model;
  10.    
  11.     public Car(String brand, String model) {
  12.         super(brand); // 调用父类构造函数
  13.         this.model = model;
  14.     }
  15. }
复制代码
关键区别

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

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
您需要登录后才可以回帖 登录 | 立即注册