简介
在 Java 中我们把 final 称为终结器,在 Java 中可以使用 final 定义类、方法、属性。通过 final 修饰以后,可以表示其修饰的类、方法和变量不可改变。
使用 final 定义类
使用 final定义的类不能够有子类,并且该类中的成员方法都默认为final方法。
final class A{ //使用 final 定义一个类
}
// 这里在 eclipse 上面会提示: The type B cannot subclass the final class A
// 并且提示要将 class A 中的 final 去掉
class B extends A{} //新建一个类去继承 final 类
使用 final 定义的方法
使用 final 定义的方法不能被子类覆写。如果不希望子类重写父类的某个方法,那就使用 final 关键字。
在一些时候由于父类中的某些方法具备某些隐藏的特性,那么并且子类必须使用此方法操作的时候,就加上 final 关键字。意思是说,子类不要去破坏这个方法的重要的作用。
class A{
// 使用 final 定义 方法
public final void fun(){}
}
class B extends A{ //新建一个类去继承 final 类
// 在 eclipse 中这行就会报错,直接就提示了需要将 A类中的 fun() 的 final 去掉
public void fun(){
}
}
使用 final 定义的变量
当使用 final 修饰变量时,表示该变量一旦获得了初始值之后就不可被改变。final 既可以修饰成员变量,例如:类变量和实例变量,也可以修改局部变量和形参。用 final 修饰的变量不可以被改变,一旦获得初始值之后,该 final 变量的值就不能被重新赋值。
定义常量
class A{
// 使用final 来修饰变量
final double GOOD = 100.0;
// 使用 final 定义 方法
public final void fun(){
// 这里会报错提示 将 GOOD 修饰的 final 去掉
GOOD = 200;
}
}
全局常量
使用 public static final 声明的就是全局常量
public static final String CONF_ID = "Windows";
static 的数据保存在公共数据区,所以此处的常量就是一个公共常量。
final 声明的数据,是不能修改的,所以上面的代码定义的变量就成为了全局使用的常量。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。