1.final
修饰属性:不能被改变,子类被继承下来也不能被改变
修饰方法 不能被重写(与static不能被重写是有区别的,注意,final方法重写编译不过。static重写是隐藏了父类的方法,没有了多态)
修饰类:不能被继承,终态类,String类就是final类
final修饰引用类型的时候,表示该引用类型不能再指向其他对象了,但该引用所指向的对象的内容是可以发生改变的
2.static
修饰属性:类属性 子类可以继承父类的static属性,子类中修改了继承下来的static属性,父类中的static属性也将被修改
修饰方法 只能继承不能重写(重写会编译通过,但不是重写,会把父类的方法隐藏掉。即不能实现多态,与final修饰的方法不能重写有区别)
修饰类 后面学到在补充
static代码块 类加载的时候执行,并且只能执行一次
继承体系中的代码块 静态代码快 和构造方法执行顺序?
先从父类到子类执行每个类的静态代码快,在从父类到子类执行代码块和构造方法。不管new多少个对象出来,静态代码快只执行一次,而代码块和构造方法new一个对象就会执行一次
父类的static块-->子类的static块-->父类的代码块-->父类的构造方法-->子类的代码块-->子类的构造方法
静态的只能访问静态的(因为你不知道访问的是哪个对象的),非静态的可以访问一切