基本含义 | 修饰类 | 修饰成员 | 修饰局部变量 | |
static | 静态的,非实例的,类的 | 可以修饰内部类 | √ | |
final | 最终的,不可改变的 | √ | √ | √ |
abstract | 抽象的,不可实例化的 | √ | √ |
static字段:
static静态字段的特点:是类的字段,不属于任何一个对象实例
1)他们不保存在某个对象实例的内存区间中,而是保存在类的内存区域的公共存储单元
2)类变量可以通过类名直接访问(如System类的in和out对象就是类的域,直接用类名System.out和System.in来访问),也可以通过实例对象来访问,结果相同。
3)在一定意义上,可以用来表示全局变量
4)static方法是属于整个类,不能用于处理和对某个对象成员进行操作,只能处理整个类的成员变量,即static方法只能处理本类中的static域或调用static方法
5)static方法中,不能访问实例变量,不能使用this和super
6)调用该静态方法(类方法)时,应该使用类名直接调用,也可以用某一个具体的对象名
7)区别于非静态方法,static方法是属于整个类,在内存中的代码伴随着类的定义而进行分配和装载,不被任何一个对象专有。
final
1)(fianl类)一个类被final修饰符所修饰和限定,说明该类不能被继承(阻止继承),即不容许被扩展
如:public final class Executive extends Manager{...}
2)(final方法)final修饰符所修饰的方法是不能被子类方法所覆盖的
3)final成员变量和fianl局部变量
a.只读量,能且只能被赋值一次,一旦赋值就不能更改。
b.一个成员变量被final static修饰符修饰时,可以表示常量,若不给定初值,系统按默认值进行初始化,
c.final域一个是在定义变量时赋初始值,一个是在构造函数中赋值
abstract
1)abstract类:被abstract修饰符所修饰的抽象类,不能被实例化
2)abstract方法:被abstract所修饰的抽象方法,是所有子类定义的一个统一接口,对抽象方法只需声明,不需实现。
3)定义格式:abstract returnType abstractMethod([paramlist]);
3)abstrac方法在abstract类中可有可无,但是一旦类啊包含了abstract方法,必须将该类声明为abstract类
4)抽象方法在抽象类中必须被实现,否则子类仍然是abstract的。