我在之前分别写过关于static关键字的 http://blog.csdn.net/itmonkeyking/article/details/51115271 介绍和this关键字的http://blog.csdn.net/itmonkeyking/article/details/51089499,今天再来写一篇关于final关键字的文章。
java中,我们可以使用final 来定义类、方法和变量,而正如final的汉语意思一样,它在java中代表的是终结的概念。
1.使用final定义的类不能有子类,即无法被其他类所继承
final class A{
}
class B extends A{ //错误:the type B cannot subclass the final class A
}
2.使用final定义的方法不能被子类所覆写
class A{
public final void print(){ //无法被子类所覆写的方法
}
}
class B extends A{
public void print(){ //错误: Cannot override the final method from A
}
}
3.使用final定义的变量,就表示
常量,常量在定义时必须设置默认值,并且无法修改
class A{
final String INFO="hello world"; //常量
public final void print(){ //无法被子类所覆写的方法
INFO="world"; //错误: The final field A.INFO cannot be assigned
}
}
我们在实际的开发中,在类或方法上使用final的地方并不多(除了全局常量),这对我们来说无疑是一个好消息。此外,我们还要注意, 定义final常量时每个单词的字母都要大写。
何为全局常量?
一段代码就好:public static final String INFO=“hello world”;
即我们使用public static 来定义常量,那么这个常量就称为全局常量。