**final 关键字**
1.final关键字修饰的类不能被继承,被final修饰的类中的成员方法都会被隐式指定为final方法,被final修饰的类中的成员变量根据实际需求是否设计为final。被设计为final类的有String、System等
2.final修饰的成员变量不能被更改,必须赋予初始值
有两种赋值方式,一种是直接赋值,另一种是在构造方法里面赋值。
如果final修饰的变量是基本类型则这个变量的值不会变,
如果修饰的是引用类型的变量,则这个变量的引用的地址不能修改,这个引用的变量的内容可以修改。
3.final如果修饰方法的话,那么这个方法不能被重写,一个方法被private修饰会被隐式的指定为final方法。
//final类不能被继承
public class FinalClass {
//final修饰的成员变量必须赋予初始值(基本数据类型),如果是引用类型那么该成员变量的引用地址是不变的
private final static int a = 0;
public final static String s = "sss";
//final static StringBuffer str = new StringBuffer("18hao");
public FinalClass(){
// this.s = s;
//如果定义变量的时候没有给成员变量赋值,那么在构造函数中必须赋值
//static的有限与构造函数执行
// s = “sss”;
}
//final方法不能被子类重写
public final void finalMenth(){
}
//final前面加private子类中可以有方法名相同的方法
private final void finalMenth1(String s){
}
public void noFinal(){
}
//私有的方法是隐式的final方法不能被继承子类重写,但子类中可以有方法名相同的方法
private void noFinalPrivate(){
}
public static void main(String[] args) {
final StringBuffer str = new StringBuffer("18hao");
//a = 1;不能再次赋值给
str.append("shi");
//str = new StringBuffer("19hao");
//s = "h";
final String x = "zsd";
System.out.println(x);
//String x = x+"sdf";
}
}