this与super关键字
-
this——用于引用本类中对象的指针(只与对象有关)
只出现在类的非静态方法、构造方法中
在本类成员方法、构造方法、set方法中,引用本类成员变量(当类的成员变量名与该成员方法中的局部变量名重复时);
在本类成员方法中,访问方法所在类的当前对象(不太确定使用场景)
在本类构造方法中,访问本类构造方法
this (参数列表);//必须为该构造方法中第一个语句
-
super——在子类中引用父类被屏蔽的成员方法、构造方法、成员变量
在子类成员方法中,引用直接父类的成员变量与成员方法
在子类构造方法中,引用直接父类的构造方法
super (参数列表);
super.方法名(参数列表);
super.成员方法名
static关键字
1.修饰变量——静态变量 \ 类变量
被类的所有实例共享,内存区域固定
2.修饰方法——静态方法 \ 类方法
不能用this关键字调用
非静态方法:访问静态对象、成员对象
静态方法:只能访问静态对象
3.静态初始化
public class A{
static{
静态代码块(只运行一次)
}
}
先初始化父类静态代码,再初始化子类静态代码,接着初始化父类非静态代码与构造方法,最后执行子类非静态代码与构造方法。
final关键字
1.修饰变量——常量
2.修饰方法——不能被子类重写override
3.修饰类——不能被子类继承
abstract类与方法
1.抽象类——可以包含或不包含抽象方法
[访问控制符] abstract class 类名{
}
抽象类必须被继承,子类如果不是抽象类,那么必须重写父类中的抽象方法
抽象类不能被实例化,不能new对象,必须通过子类创建对象(接口:多个类的公共规范)
public class 实现类(如XXXImpl) implements 接口名{
}
2.抽象方法——必须在抽象类中
[访问控制符] abstract class 类名{
}
[访问控制符] abstract 方法返回值 方法名(参数类型 参数列表);
抽象类必须被继承,子类如果不是抽象类,那么必须重写父类中的抽象方法