浅谈Java中的super和this

super():代表父类对象,调用父类的构造方法,如果在子类的构造函数中调用该函数则必须放在第一行,该方法会将父类的变量与方法记载到子类开辟的堆内存中。

public class Father {
    
     private  int id;
     public Father()
     {
         
     }
     
    public Father(int id) {     
        this.id = id;
    }

    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    
}
public class son extends Father {
   
      public son()
      {
          super();//调用父类的无参构造方法
      }
      public son(int id)
      {
          super(id);//调用父类的有残构造方法
      } 
}

如果父类没有无参构造方法导致子类调用不到相应的构造方法

this():指代本类对象,用于调用本类构造方法和属性还有普通方法,如果在本类找不到就去父类中找

注意:this和super不能在静态方法中使用(因为静态方法是随着类的加载而加载,此时还没有对象,而this和super指本类和父类)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1 面向对象No6 面向对象 OO Object Oriented 编程时以对象为单元,封装数据和逻辑,以此提...
    征程_Journey阅读 1,196评论 0 2
  • 一:java概述:1,JDK:Java Development Kit,java的开发和运行环境,java的开发工...
    ZaneInTheSun阅读 2,690评论 0 11
  • (一)Java部分 1、列举出JAVA中6个比较常用的包【天威诚信面试题】 【参考答案】 java.lang;ja...
    独云阅读 7,143评论 0 62
  • 1.import static是Java 5增加的功能,就是将Import类中的静态方法,可以作为本类的静态方法来...
    XLsn0w阅读 1,267评论 0 2
  • 图片链接已失效,欢迎前往我的博客查看最新版本 Jupyter Notebook Jupyter notebook,...
    liuchengxu阅读 35,737评论 2 33