【Java】abstract、static、final修饰使用汇总

【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