关于final修饰符的一些学问

关于final修饰符的一些知识
写道
根据程序上下文环境,Java关键字final有“这是无法改变的”或者“终态的”含义,它可以修饰非抽象类、非抽象类成员方法和变量。你可能出于两种理解而需要阻止改变:设计或效率。

 

1.用final修饰的成员变量表示常量,值一旦给定就无法改变! 

        final类不能被继承,因此final类的成员方法没有机会被覆盖,默认都是final的。在设计类时候,如果这个类不需要有子类,类的实现细节不允许改变,并且确信这个类不会被扩展,那么就设计为final类。

2.final方法不能被改写

      使用final方法的两个原因:

        第一、把方法锁定,防止任何继承类修改它的意义和实现。
        第二、高效。编译器在遇到调用final方法时候会转入内嵌机制,大大提高执行效率。

3. final类不能被继承

 

4. final修饰的变量有三种:静态变量、实例变量和局部变量,分别表示三种类型的常量。

 

5.static和final一块用表示什么 
      static final用来修饰成员变量和成员方法,可简单理解为“全局常量”! 
         a)对于变量,表示一旦给值就不可修改,并且通过类名可以访问。 
         b)对于方法,表示不可覆盖,并且可以通过类名直接访问。