代码中我们 有时候会看到这样:
那这个super是什么 作用呢?
super是指向父类的引用,如果构造方法没有显示地调用父类的构造方法,那么编译器会自动为它加上一个默认的super()方法调用。如果父类由没有默认的无参构造方法,编译器就会报错,super()语句必须是构造方法的第一个子句。
定义子类的一个对象时,会先调用子类的构造函数,然后在调用父类的构造函数,如果父类函数足够多的话,会一直调用到最终的父类构造函数,函数调用时会使用栈空间,所以按照入栈的顺序,最先进入的是子类的构造函数,然后才是邻近的父类构造函数,最后再栈顶的是最终的父类构造函数,构造函数执行是则按照从栈顶到栈底的顺序依次执行.
(引用自https://www.cnblogs.com/yyy6/p/8976584.html )
super:它是一个指代变量,用于在子类中指代父类对象。
看到网上的文章有时候会拿this和super来说, 这里如何区分呢?
目前对我来说,就以下的区别
this是用在某个对象里面, 引用该对象的属性或方法时使用;
super是用在继承了父类的子类中,引用父类的方法时使用。访问父类的方法,调用父类构造方法,访问父类中的隐藏成员变量;
有理解不到的地方后期再修改补充。