super
super是java中的一个关键字,super 代表了当前对象中从父类继承过来的那部分特征。
对比this,this是只一个独立的对象,super则不是指向某一个独立的对象,假设小头爸爸是父亲,大头儿子是儿子,大家都说小头儿子的眼睛和鼻子很像大头爸爸的,那么就说明眼睛和鼻子是继承父亲的,如果this指向小头儿子那么super就代表眼睛和鼻子。则super就是this的一部分。
两个对象属于独立的,并没有什么联系,而super指向的是鼻子眼睛,因为是从父类继承来的,在内存中进行了标记。this.眼睛和super.眼睛,都是访问的同一块内存空间。
使用super:
1.super和this都可以在实例方法中使用
2.super不能使用在static方法中,因为super代表了当前对象上的父类型特征,static方法中没有this所以不能使用。
3.可以这样使用,super(实际参数列表),这样方法 是通过当前的构造方法来调用父类的构造方法。super() 只能出现在构造方法第一行。
4.this.和·super.都可以省略,但是为了区分区分父类和子类的同名属性时,想在子类中访问父类属性是super.不可以省略。
final
final是一个关键字,可以修饰变量,方法,类。
注意:
1.final修饰的类不能被继承
2.final修饰的方法不能被覆盖
3.final修饰的变量不能被修改
4.final修饰的成员变量必须被初始化
5.如果final修修饰的是一个引用,那个这个引用将永远指向这个对象,不可以改变,但是对象的内容可以改变
6.构造方法不能被final修饰,构造方法是专门用来被重写的,因此不能用final修饰。