package basic;
public class FinalTest {
/**
* @param args
* 1.final的变量不能被改变
*/
public static void main(String[] args) {
Final1 f = new Final1();
//1.final的成员变量不能被改变 f.i = 7;
/*5.final 是针对引用的,
它使得一个引用只能指向最初得对象,
说白了就是引用的内存地址是不可变得,
所以内容是可以变的。StringBuffer要放在方法中 */
final StringBuffer bf = new StringBuffer("aaa");
bf.append("eeeeeeeeeee");//正常
System.out.println(bf);
//bf = new StringBuffer("ddd");//报错
}
}
class Final1{
final int i = 9;//1.
public void method(final int j){
//2.final的局部变量不能被改变 这个方法里j的值一旦传进来以后,就不能被改变 j = 9;
}
public final void method1(){
System.out.println("method1");
}
}
class Final2 extends Final1{//4.如果Final1 是final修饰的类,则无法重它继承
/*public void method1() {
System.out.println("method1()被重写了");
}*/
//3.final 的方法不能被重写
}