[b]Java中的final关键字[/b]
[b]1、修饰类的成员变量 [/b]
这是final的主要用途之一,和C/C++的const,即该成员被修饰为常量,意味着不可修改。
[img]http://files.jb51.net/file_images/article/201701/201701241520378.png[/img]
上面的代码对age进行初始化后就不可再次赋值,否则编译时会报类似上图的错误。
如果修饰的是引用类型的变量,那么初始化后就不能让他指向另一个对象,如下图所示[img]http://files.jb51.net/file_images/article/201701/201701241520379.png[/img]
[b]2.修饰方法 [/b]
用final关键字修饰的方法是不能被该类的子类override(重写),因此,如果在想明确禁止 该方法在子类中被覆盖的情况下才将方法设置为final的。
[i]注:类的private方法会隐式地被指定为final方法[/i]。
public class Person {
public Person() {
// TODO Auto-generated constructor stub
}
public final void show(){
}
}
public class Man extends Person{
public void show( ){
}
}
上面的Man类就会报如下的编译错误## 标题 ##
[quote]
Cannot override the final method from Person
[/quote]
[b]3.修饰类 [/b]
当用final修饰一个类时,表明这个类不能被继承。也就是说,如果一个类你永远不会让他被继承,就可以用final进行修饰。final类中的成员变量可以根据需要设为final,[b]但是要注意final类中的所有成员方法都会被隐式地指定为final方法。[/b]
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!