final 使用详解

下面三条是关于final的用法比较笼统的说法,即使背到脑子里,看的只是带着面纱的final。我希望下面的内容可以解开这层面纱。

  • final可以修饰变量,被final修饰的变量被赋值之后,不能对它重新赋值;
  • final可以修饰方法,被final修饰的方法不能被重写;
  • final可以修饰类,别final修饰的类不能被派生子类。

1. final修饰变量

Java程序不能为final修饰的变量执行默认的初始化,必须显示的初始化。

实例变量指定初始值的三个地方:

本质上都是在构造器里面

类变量指定初始值的两个地方:

执行“宏替换”变量

对于一个final变量(类变量,实例变量,局部变量),在定义该变量时指定了初始值,且该初始值可以在编译时就确定下来,那么这个final变量本质上已经不再是变量,而是相当与一个直接量。

  1. 直接量
  2. 表达式(基本运算表达式或字符串连接运算,没有访问普通变量,调用方法)

2. final修饰的方法不能被重写

子类访问不到父类中的某个方法时,在子类中可以写一个和父类的该方法同名的方法。

例如:父类中的方法使用private修饰

3. 内部类中的局部变量

java要求所有被内部类访问的局部变量都使用final修饰。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值