super关键字

super和this的使用可以对比学习;

this:

  只能出现在构造方法和实例方法中。

  其语法为this. 和 this()

  this不能使用在静态方法中。

  this.大部分情况可以省略。

  this.在区分实例变量和局部变量的时候不能省略。

  this()在代码复用中只能出现在构造方法的第一行,通过当前的构造方法去调用本类中的其他构造方法。

 

super:

  只能出现在构造方法和实例方法中。

  其语法为super. 和 super()

  super不能使用在静态方法中。

  super.大部分情况可以省略。

  super的省略:父类中有的变量,子中也有,且在子中访问父的和子中同名的变量,那么必须加super。

  super()在代码复用中只能出现在构造方法的第一行,通过当前的构造方法去调用父类中的其他构造方法。 目的:创建子类对象的时候,先初始化父类特征。

 

super() 表示通过子类的构造方法调用父类的构造方法。

    模拟现实世界,要想有儿子,需要现有父亲。

重要结论:当一个构造方法的第一行,既没有this()又没有super()的话,默认会有一个super();且两者不能共存

表示通过当前子类的构造方法调用父类的无参数构造方法。因此必须保证父类的无参数构造方法是存在的。

  只要存在继承,父类的构造方法是肯定会执行的。

什么时候使用super()

作用:初始化当前对象的父类型特征。

   super关键字代表当前对象的那部分父类型特征。

注:java中允许出现父类和子类同名的变量

 

有关super的结论:

  super不是引用,super也不保存内存地址。super也不指向任何对象。

  super只是代表当前对象内部的那一块父类型的特征。

super的用法总结:

  super.属性名  访问父类的属性

  super.方法名(实参) 访问父类的方法

  super(实参)子类构造方法中调用父类的构造方法。

posted @ 2022-06-23 10:44  _八级大狂风  阅读(28)  评论(0编辑  收藏  举报