1、final
<1>用在成员变量
表明该变量是终结变量,初始化后不能再次赋值。
public
class
FinalFeild
...
{
privatefinalStringt="frist";
publicstaticvoidmain(String[]args)...{
//cannotmakeastaticreferencetothenon-staticfeildt
//t="second";//不合法。
}
}
privatefinalStringt="frist";
publicstaticvoidmain(String[]args)...{
//cannotmakeastaticreferencetothenon-staticfeildt
//t="second";//不合法。
}
}
<2>用在成员方法
表明该方法是终结方法,子类不能重写。
FinalMethod.java
public
class
FinalMethod
...
{
publicfinalvoidget()...{
System.out.println("FinalMethod");
}
}
publicfinalvoidget()...{
System.out.println("FinalMethod");
}
}
ChildClass.java
public
class
ChildClass
extends
FinalMethod
...
{
//cannotoverridethefinalmethodfromFinalMethodoverrides
//FinalMethod.get
//publicvoidget(){
//System.out.println("ChildClass");
//}//不合法
}
//cannotoverridethefinalmethodfromFinalMethodoverrides
//FinalMethod.get
//publicvoidget(){
//System.out.println("ChildClass");
//}//不合法
}
<3>用在类
表明该类是终结类,不能被继承。
FinalClass.java
public
final
class
FinalClass
...
{
publicvoidgo()...{
}
}
publicvoidgo()...{
}
}
SonClass.java
//
ThetypeSonClasscannotsubclassthefinalclassFinalClass
// publicclassSonClassextendsFinalClass{
//
// publicstaticvoidmain(String[]args){
// System.out.println("SonClass");
// }
//
// }
// publicclassSonClassextendsFinalClass{
//
// publicstaticvoidmain(String[]args){
// System.out.println("SonClass");
// }
//
// }