java三个修饰符

三个修饰符
public     属性  方法  构造方法   类
protected  属性  方法  构造方法
default    属性  方法  构造方法   类
private    属性  方法  构造方法

static    静态的
1) 属性   类变量  不属于任何对象,全类共有,可以直接用类名访问
          类变量在类加载的时候分配空间并初始化,而不是对象创建时
2) 方法   静态方法可以直接用类名调用

          静态方法中只能访问类的静态成员(属性+方法) (不能访问this)
          非静态方法中可以访问类的静态成员
    
          静态方法之间可以覆盖,但是 没有多态!
          对引用调用静态方法,等价于对引用类型调用静态方法

3) 初始代码块   静态初始代码块
          类加载的时候执行一次
          类加载:当JVM第一次使用一个类时,需要通过ClassPath找到这个类对应的.class文件,并把文件中的类的信息读取到JVM,并保存起来.
          类加载的过程:
          1.如果需要,先加载父类
          2.按照类的定义顺序,初始化静态属性,或执行静态初始代码块
    
          一般情况下,一个类只会加载一次       

final
1)变量  常量 一旦赋值,不能改变
        常量属性,系统不再提供默认值.由程序员在初始化属性或构造方法中主动赋值

2)方法  不能被覆盖
3)类    不能被继承

     
abstract  抽象的 
1)类    抽象类只能声明引用,不能创建对象
        半成品 供子类继承
2)方法  抽象方法只有声明,没有实现

如果一个类中有抽象方法,这个类必须是抽象类;抽象类中未必有抽象方法
子类继承抽象类,如果子类不希望也成为抽象类,就必须实现父类中所有的抽象方法

static private final 不能和abstract联用  
原文地址:https://www.cnblogs.com/zhangqiyang/p/3700337.html