1、static
可修饰:方法,属性,代码块,内部类
特点:
- 随着类的加载而加载
- 优先于对象存在
- 修饰的成员,被所有对象共享
- 访问权限允许时,可不创建对象,直接被类调用
在设计类时,分析哪些类属性不因对象的不同而改变,将这些属性设置为类属性。相应的方法设置为类方法
应用:单例设计模式
2、final
可修饰:类,方法,属性
特点:
- 被修饰的类不能被继承
- 被修饰的方法不能被子类重载
- 被修饰的变量(成员变量或局部变量)被称为常量,名称大写,且只能被赋值一次。
- 如果是成员变量,则在声明的同时或在代码块或构造器中显式地赋值,然后才能使用
3、abstract
可修饰:类,方法
特点:
- 被修饰的类称为抽象类
- 被修饰的方法称为抽象方法,抽象方法只有方法的声明,没有具体的实现
- 含有抽象方法的类必须声明为抽象类
- 抽象类不能被实例化。只能用来继承,且子类中必须提供抽象方法的具体实现。
- 如果子类中没有全部重写抽象类中的所有抽象方法,则该类仍为抽象类
- 不能用abstract修饰属性,私有方法,final方法,构造器,静态方法
应用:
- 模板方法设计模式
- 接口
- 一种特殊的抽象类
- 接口中所有成员变量默认都是由public static final修饰的
- 接口中所有方法默认都是由public abstract修饰的
- 接口中没有构造器