zoukankan      html  css  js  c++  java
  • final关键字

    三种情况:final数据、方法和类

    一、final数据

    1.   使用场景举例:
    •     一个永不改变的编译时常量。(编译时常量必须是基本数据类型,必须在这个常量定义时赋值)
    •       一个在运行时被初始化的值,而不希望它被改变。

    对于基本类型,final使数值恒定不变;对于对象引用,final使引用恒定不变,然而对象其自身却是可以被修改的。

    定义为static final:static强调只有一份,final则说明是一个常量。

    定义为final的常量,并不表示在编译时就可以知道它的值,它也可能在运行时被初始化。

     

    2.空白final

    3.final参数

      指定为final的参数,表明在方法中无法更改。

    二、final方法

    1.使用final方法的原因有两个:

      • 把方法锁定,以防止任何继承类修改它的含义。
      • 效率原因,编译器将final方法转为内嵌调用,以提高效率,但是当方法很大时无效。

    2.final和private关键字

    类中所有private方法都隐式地指定为是final的。由于无法取用private方法,所以也就无法去覆盖它。

    @Override注解可以解决该问题。

    三、final类

    将某个类的整体定义为final时,表明该类不能被继承。

    也就是说,该类的设计不能做任何改动,或者出于安全考虑,定义者不希望该类有子类。

    final类会把它所有的方法都隐式指定为是final的,因为无法覆盖它的方法。

  • 相关阅读:
    IT程序猿”是怎样练成的? 之 提升内驱力的7大秘籍转
    wp7 退出程序的提示对话框
    生活不容易
    Decorator模式学习
    用序列化方法实现的Prototype的深拷贝
    Observer pettern
    Adapter模式学习
    bridge模式学习
    Composite模式学习
    Prototype原形设计模式
  • 原文地址:https://www.cnblogs.com/HITSZ/p/6384948.html
Copyright © 2011-2022 走看看