final关键字
1、修饰类
final类不能被继承,且final类中的所有成员方法都会被隐式地指定为final方法
2、修饰方法
父类的final方法不能被子类所覆盖,也就是说子类是不能够存在和父类一模一样的方法的。
final修饰的方法表示此方法已经是“最后的、最终的”含义,亦即此方法不能被重写(可以重载多个final修饰的方法)。此处需要注意的一点是:因为重写的前提是子类可以从父类中继承此方法,如果父类中final修饰的方法同时访问控制权限为private,将会导致子类中不能直接继承到此方法,因此,此时可以在子类中定义相同的方法名和参数,此时不再产生重写与final的矛盾,而是在子类中重新定义了新的方法。(注:类的private方法会隐式地被指定为final方法。)
3、修饰变量
变量只能被赋值一次,赋值后不再改变
如果修饰成员变量,必须在定义时赋值,或在构造函数中赋值
4、修饰参数
参数只能读,不能被修改
static关键字
1、修饰变量
static变量一般称为静态变量,当且仅当在类初次加载时会被初始化,静态成员变量为所有对象所共有,可以不用实例化使用,调用形式:类名.静态成员变量
2、修饰方法
static方法一般称之为静态方法,静态方法为所有对象所共有,可以不用实例化使用,调用形式:类名.静态成员方法;静态方法不能使用非静态成员方法和非静态成员变量,反过来却可以
3、修饰代码块
在类初次被加载的时候,会按照static块的顺序来执行每个static块,并且只会执行一次