java中的super

代码中我们 有时候会看到这样:

 

那这个super是什么 作用呢?

super是指向父类的引用,如果构造方法没有显示地调用父类的构造方法,那么编译器会自动为它加上一个默认的super()方法调用。如果父类由没有默认的无参构造方法,编译器就会报错,super()语句必须是构造方法的第一个子句。

  定义子类的一个对象时,会先调用子类的构造函数,然后在调用父类的构造函数,如果父类函数足够多的话,会一直调用到最终的父类构造函数,函数调用时会使用栈空间,所以按照入栈的顺序,最先进入的是子类的构造函数,然后才是邻近的父类构造函数,最后再栈顶的是最终的父类构造函数,构造函数执行是则按照从栈顶到栈底的顺序依次执行.

(引用自https://www.cnblogs.com/yyy6/p/8976584.html )

 

super:它是一个指代变量,用于在子类中指代父类对象。

 

看到网上的文章有时候会拿this和super来说, 这里如何区分呢?

目前对我来说,就以下的区别

this是用在某个对象里面, 引用该对象的属性或方法时使用;

super是用在继承了父类的子类中,引用父类的方法时使用。访问父类的方法,调用父类构造方法,访问父类中的隐藏成员变量;

 

有理解不到的地方后期再修改补充。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章