java 中的final解析

final 修饰的类,不能被继承

   Java中的String 就是final类,不能被继承 Math也是
   在实际开发中,原则上不允许使用final类 ,如:Spring,Hibernate,Struts 2
   这些框架经常动态代理(动态继承)技术。使用final的类可能造成这些框架
   的问题。
 2.final修饰的方法,不能再被覆盖
 3.final修饰的变量,初始化以后不允许在修改了
    a final 局部变量
    b final 方法变量
    c final 成员变量
 4.final static --Java 使用final static 修饰的变量作为常量,
 一般要求常量名都有大小写

public class FinalDmeo {
  final int b = 1;//不能再修改
  static final int C = 2;//C是常量
  public static void main(String[] args) {
    final int a = 1;
    //a++;//错, 不能修改final变量
    int x = add(3,4);
    System.out.println(x);//8
  }
  public static int add(final int a, int b){
    //a++;//错误, a不能改变
    b++;
    return a+b;
  }
}

final class Xoo{}//final 类不能再被继承了
//class Yoo extends Xoo{}//错
//class MyString extends String{};//错

class Yoo{
  final int getVal(){//final 的方法, 不能被覆盖
    return 1;
  }
}
class Zoo extends Yoo{
  //int getVal(){//错误, final 的方法, 不能被覆盖
  //  return 2;
  //}
}






 

你可能感兴趣的:(java 中的final解析)