1. final 的变量的值不能够被改变
a) final 的成员变量
3. final 的类不能够被继承。例子如下,程序报错:
final int I = 9 成员/局部变量
a) final 的成员变量
b) final 的局部变量(形参)
例如下面例子里,编译时候会报错,即使不写i=9而写i=8也不行:
public class TestFinal{
public static void main(String[] args){
T t = new T();
t.i = 9;
}
}
class T{
final int i = 8;}
}
下面例子里局部变量被改写也不行,同样会报错:
public class TestFinal{
public static void main(String[] args){
T t = new T();
//t.i = 9;
}
}
class T{
final int i = 8;
void m (final int j){
j = 9;
}
}
2. final 的方法不能够被重写。例子如下,这样程序会报错:
public class TestFinal{
public static void main(String[] args){
T t = new T();
//t.i = 9;
}
}
class T{
final int i = 8;
int j;
public final void m (){
j = 9;
}
}
class TT extends T{
public void m(){
j = 10;
}
}
3. final 的类不能够被继承。例子如下,程序报错:
public class TestFinal{
public static void main(String[] args){
T t = new T();
//t.i = 9;
}
}
final class T{
final int i = 8;
int j;
public void m (){
j = 9;
}
}
class TT extends T{
}
简而言之:
public final class String 类
public final void m( ) 方法final int I = 9 成员/局部变量