final在程序之中描述的是种终接器的概念,在java里面使用final关键字可以实现如下的功能:定义不能够被继承的类、定义不能够被覆写的方法、常量。
范例:使用final定义不能被继承类
final class Channel {} // 这个类不能够有子类
当子类继承了父类之后实际上是可以进行父类中方法覆写的,但是如果你现在不希望你的某一个方法被子类所覆写就可以使用final来进行定义。
范例:定义不能够被覆写的方法
class Channel { // 这个类不能够有子类
public final void connect() {}
}
class DatabeseChannel extends Channel { // 错误的
public void connect() {}
}
在有一些系统开发之中,可能使用1表示开关打开、使用0表示开关关闭,但是如果说现在要是直接操作0或者1,则会造成混乱,所以就希望可以通过一些名称来表示0或者1。在final关键字里面有一个重要的应用技术:可以利用其定义常量,常量的内容一旦定义则不可修改。
范例:final定义常量
class Channel { // 这个类不能够有子类
private final int ON = 1 ; // ON就是常量
private final int OFF = 0 ; // OFF就是常量
public final void connect() {
ON = 2 ;
}
}
public class JavaDemo {
public static void main(String args[]) {
}
}
实际上常量往往都是公共的定义,所以为了可以体现出共享的概念,往往会使用一种全局常量的形式来定义,使用public static final来定义全局常量。
public static final int ON = 1 ; // ON就是常量
public static final int OFF = 0 ; // OFF就是常量
在定义全局常量的时候每一个字母必须大写表示。
范例:观察一个程序代码
public class JavaDemo {
public static void main(String args[]) {
final String info = "mldn" ;
String strA = "www.mldn.cn" ;
String strB = "www." + info + ".cn" ;
System.out.println(strA == strB) ;
}
}
在方法的时候也可以使用final来定义参数,此时也表示一个常量的概念。