简而言之,被 final 修饰意味着不能改变,下面列出四种情况具体说明。
使用 final 关键字修饰变量,则该变量变为常量,常量推荐使用全大写 + 下划线的方式进行命名,一旦赋值不可被改变;此外,final 修饰的变量必须在声明时初始化。
父类中被 final 修饰的方法不能在子类中重写,如下图所示。
final 类不可以被继承,如下图所示。
final 修饰的函数参数只能读取而不能修改。
static 关键字修饰方法(即函数)和变量,表明该方法或变量属于该类而不是该类的某个具体对象。例如,假如现在有一个 bird 类,fly() 应该是 bird 类的方法;而不是麻雀或者燕子独有的方法,这时可以用 static 来修饰 fly 方法。
static 修饰的方法为类方法(也叫静态方法),区别于不加 static 的实例方法(也叫成员方法),static 方法可以直接使用 类名.方法() 来调用;实例方法需要 new 一个该类的对象才能使用,示例如下图所示。
static 变量与 static 方法类似,可以直接使用类名来访问。