【JAVA SE】『super』和『this』的使用及区别

温馨提示

大家好我是Cbiltps,在我的博客中如果有难以理解的句意难以用文字表达的重点,我会有配图。所以我的博客配图非常重要!!!

本节的知识点是从我的主体博客中抽出来的,主体博客其实就是起到一个拓展上下文,为所有的知识点体现逻辑顺序的作用。所以,我会把里面有讨论价值的东西单独拉出来,方便大家食用!

欢迎大家指正,加油!

正文开始

在之前的学习中已经遇见 superthis 两个关键字,博主根据自身所学及博客参考做出如下总结:

super: 可以理解为父类对象的引用(是依赖对象的),不能出现在静态环境(包括:static变量,static方法,static语句块)中因为 static 不依赖对象)!

  • super(); //调用父类的构造方法
  • super.func(); //调用父类的普通方法
  • super.data; //调用父类的成员属性

this: 可以理解为指向本对象的指针,它代表当前对象名(在程序中易产生二义性之处,应使用 this指明当前对象;如果函数的形参类中的成员数据同名,这时需用 this指明成员变量名)!

  • this(); //调用本类中另一种形成的构造方法

注意点与区别总结:

  • super();this();区别是:super();从子类中调用父类的构造方法,this();在同一类内调用其它方法
  • super();this();均需放在构造方法内第一行
  • 有时候 thissuper 不能同时出现在一个构造函数里面,因为 this 必然会调用其它的构造函数,其它的构造函数必然也会有 super 语句的存在,所以在同一个构造函数里面有相同的语句,就失去了语句的意义,编译器也不会通过
  • this();super();都指的是对象,所以,均不可以在 static环境中使用(包括:static变量,static方法,static语句块)

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/Cbiltps/article/details/122514697
今日推荐