1.final修饰类:这个类不能被继承。如:String类、StringBuffer类、System类。
2.final修饰方法:不能被重写。如:Object类的getClass()方法。
3.final修饰属性:此属性就是一个常量,一旦初始化就不可再被赋值。习惯上,常用大写字符表示。
1)此常量不能使用默认初始化。
2)可以显示的赋值、代码块、构造器。
变量static final修饰:全局常量
public class TestFinal {
public static void main(String[] args) {
//显式赋值给常量
final int NUM = 10;
//NUM已经被初始化过了,不能被修改
NUM = 22;//此处出错
}
}
//A类使用final修饰,则A不能被继承
final class A {
}
//B类继承A类出错
class B extends A {//此处出错
}
class C {
//method0()方法使用final修饰,则method0()方法不能被重写
public final void method0() {
}
}
class D extends C {
//重写method0()出错
public void method0() {//此处出错
}
}
class E {
//代码块给常量初始化
final String NATION;
{
NATION = "CHINA";
}
//构造器给常量赋初值
final int MONEY;
public E() {
MONEY = 100000000;
}
//全局常量,例如:Math.PI
static final int height = 173;
}