final在程序之中描述的是种终结器的概念,在java里面使用final关键字可以实现如下功能:定义不能被继承的类,不能够被覆写的方法,常量。
1、使用final定义不能被继承的类
final class Person{
//这个类不能够有子类
}
class Student extends Person{
//错误的,继承不了
}
public class JavaDemo4{
public static void main(String arge[]) {
}
}
2、定义不能被覆写的方法
class Person{
public final void connect() {} ;
}
class Student extends Person{
public void connect() {} //错误的
}
3、定义不能被覆写的常量
在有一些系统开发之中,可能使用1表示开关打开,使用0表示开关关闭,但是如果要直接操作0或者1,则会造成混乱,所以希望可以通过一些名称来表示0或者是1。而final可以定义常量,常量的内容一旦定义便不能修改。
```java
package mypro1 ;
class Channel{
private final int ON = 1 ;//ON就是常量
private final int OFF = 0 ; //OFF就是常量
public final void connect() {
ON = 2 ;
}
}
public class JavaDemo4{
public static void main(String arge[]) {
}
}
实际上常量往往都是公共的定义,所以为了可以体现共享的概念,往往会使用一种全局常量的形式来定义,使用public(公共) static(共享) final(常量) 来定义全局常量。
public static final int ON =1 ;
定义全局常量时必须大写来区分(ON)
public class JavaDemo4{
public static void main(String arge[]) {
final String info = "mldn" ;//此时info为常量
String strA = "www.mldn.cn" ;
String strB = "www."+info+".cn" ;
System.out.println(strA == strB) ;//info使用final定义输出为true,相反为false
}
}
`在方法的时候也可以使用final来定义参数,此时也表示一个常量的概念。``