super关键字的使用
- 代表父类引用,访问父类成员方法
super.print();
- 访问父类属性
super.name;
- 访问父类的构造方法
super();
子类的构造的过程中必须调用其父类的构造方法
如果子类的构造方法中没有显式标注,则系统默认调用父类的无参构造方法
如果子类构造方法中既没有显式标注,且父类没有无参构造方法,则编译错误
使用super调用父类指定构造方法,必须放在子类的构造方法的第一行
public Cat(String name,int month){
/* 子类构造默认调用父类无参构造方法
* 可以通过super()调用父类允许被访问的其他构造方法
* super()必须放在子类构造方法有效代码第一行
*/
super(name,month); //this
System.out.println("我是子类的带参构造方法");
}
- 父类的构造不允许被继承、不允许被重写,但是会影响子类对象的实例化
this与super关键字的比较
this:当前对象的引用
- 访问当前类的成员方法
- 访问当前类的成员属性
- 访问当前类的构造方法
- 不能在静态方法中使用
super:父类对象的引用
- 访问父类的成员方法
- 访问父类的成员属性
- 访问父类的构造方法
- 不能在静态方法中使用
super和this:
- 构造方法调用时,super和this不能同时出现
final关键字的使用
修饰类表示不允许被继承
修饰方法表示不允许被子类重写
- ==final修饰的方法可以被继承==
- 不能修饰构造方法
- 修饰变量表示不允许修改
- 方法内的局部变量 -->在使用之前被初始化赋值即可
- 类中成员变量 --> 只能在定义时、构造方法、构造代码块中进行
- 基本数据类型的变量 --> 初始赋值之后不能更改
- 引用数据类型 --> 初始化之后不能再指向另一个对象,但对象的内容是可变的
- 可配合static使用
- 方法
- 变量
- final修饰可以提高性能,但会降低可扩展性