每个方法里面都有两个隐式参数(this super)
public void run(this,super){
this 用来调用自身的方法
super 调用父类的方法
}
super关键字:代表了父类空间的引用。 正是因为super关键字,我们才能继承调用父类的方法。
super关键字的 作用:
1. 子父类存在着同名的成员时,在子类中默认是访问子类的成员,可以通过super关键字指定访问父类的成员。
(当调用一个方法时,若子类父类都有,那么默认调用子类的方法,可以通过super指定访问父类,若子类没有,自动调用父类,如果父类没有,父类的父类有或者说Object有,只要有就会逐级的寻找,然后调用关系最近的,其实父类子类都有这个方法那么实际上就是override)
子类父类的关系就像一个嵌套的图形 外层享有调用的优先级,如果外层没有就逐层向里面找方法.
2. 创建子类对象时,默认会先调用父类无参的构造方法,可以通过super关键字指定调用父类的构造方法。
super关键字调用父类构造方法要注意的事项:
1. 如果在子类的构造方法上没有指定调用父类的构造方法,那么java编译器会在子类的构造方法上面加上super()语句。
2. super关键字调用父类的构造函数时,该语句必须要是子类构造函数中的第一个语句。
3. super与this关键字不能同时出现在同一个构造函数中调用其他的构造函数。因为两个语句都需要第一个语句。
super关键字与this关键字的区别:
1. 代表的事物不一致。
1. super关键字代表的是父类空间的引用。
2. this关键字代表的是所属函数的调用者对象。
2. 使用前提不一致。
1. super关键字必须要有继承关系才能使用。
2. this关键字不需要存在继承关系也可使用。
3. 调用构造函数的区别:
1. super关键字是调用父类的构造函数。
2. this关键字是调用本类的构造函数。