【Java】abstract、static、final修饰使用汇总
为什么不能用abstract修饰属性,私有方法,构造器,静态方法,final的方法?
private单独说明
私有,仅类内访问。
abstract
abstract修饰类:
- 抽象类,不能直接独立new对象;
- 可被子类继承,提供共性属性和方法;
- 可声明为引用,强制使用多态(更纯粹的多态);
abstract修饰方法:
- 只有方法声明,没有方法实现;
- 必须包含在抽象类中(abstract class XX{});
- 强制子类必须实现该方法,提供完整的、具体的调用版本;
static
静态方法规则:
- 静态方法允许直接访问静态成员(不需要this.);
- 静态方法不允许直接访问非静态成员;
- 静态方法中不允许使用this或super关键字(构造方法可以);
- 静态方法可以继承,不能重写(覆盖)、没有多态;
final
final可修饰:
- 类(最终类)
此类不能被继承,eg:String, Math, System均为final修饰的类 - 方法(最终方法)
此方法不能被覆盖。 - 变量(最终变量)
此变量值不能被改变(常量 - 通常变量名全大写),eg: Math.PI