final是java中一个比较重要的关键字,可以用它来修饰成员变量(全局变量),也可以用它来修饰一个方法,甚至修饰一个类。
如果一个成员变量被final修饰,则这个成员变量变成常量;
如果一个方法被final修饰,则这个方法不能被重写;
如果一个类被final修饰,则这个类不能被继承。
1.常量
public class Constant extends ConstantTest {
public static void main(String[] args) {
ConstantTest ct = new ConstantTest();
System.out.println("a的值为"+ct.print());
}
}
class ConstantTest{
int print(){
final int a = 10;
return a;
}
}
public class StaticConstant extends StaticConstantTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
StaticConstantTest sct = new StaticConstantTest();
System.out.println(sct.eat());
}
}
class StaticConstantTest{
static final String str = "去吃饭。。。";
public static String eat() {
return str;
}
}
2.方法
public class FinalMethod extends FianlTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
FianlTest ft = new FianlTest();
ft.a = 50;
ft.print();
}
}
class FianlTest{
int a;
final void print() {
System.out.println("a的值为"+a);
}
}
3.类
public class FinalClass {
public static void main(String[] args) {
// TODO Auto-generated method stub
FinalClassTest fct = new FinalClassTest();
fct.eat = "我们去吃饭";
fct.str = "十二点";
fct.print();
fct.eat();
}
}
class FinalClassTest{
String str;
String eat;
void print() {
// TODO Auto-generated method stub
System.out.println("现在时间是"+str);
}
void eat() {
// TODO Auto-generated method stub
System.out.println(eat);
}
}