final作用位置
《java编程思想》里提到通常它指的是“这是无法改变的。”不想做改变可能出于两种理由:设计或效率。
可以使用到的三种情况:数据、方法和类
数据
final用来修饰变量:此时的“变量”就称之为一个常量;
final用来修饰属性:可以考虑赋值的位置有:显式初始化、代码块中初始化、构造器中初始化;
final用来修饰形参:表明此形参是一个常量。当我们调用此方法时,给常量形参赋一个实参。一旦赋值以后,就只能在方法体内使用此形参,但不能进行重新赋值。
//这是最好的一个修饰数据常量的案例,当然还有其他的要根据需求而定。
private static final double Pi = 3.14;
final方法
//父类
public class Person {
public final void sleep(){
System.out.println("每个人都要睡觉和休息好才能更好的工作");
}
}
//子类
public class Chinese extends Person {
/*
不能再继承类中重写此种方法
public final void sleep(){
out.println("每个人都要睡觉和休息好才能更好的工作");
}
*/
}
final和private需去深刻理解一下,他们可能给设计者效果相同,但是他们的含义却不经一样。
final 类
用来修饰一个类:此类不能被其他类所继承;
比如:String、System、StringBuffer