final关键字

final关键字

存在两种final的用法:

  • 一个永远不会改变的编译时常量
  • 一个在运行时被初始化的值,不希望被改变

对于编译器常量,编译器可以将常量值直接代入用到它的表达式中,减轻了运行时负担。但这类常量必须是基本数据类型,且必须对它进行赋值。例如:private final int VALUE = 99;
一个static final域会占据一段不能改变的存储空间。对于基本数据类型很好理解,数值恒定不变,但对于引用对象来说,只是恒定指向这个对象,但是对象内部的值却是可以修改的,对于数组也是同理。

空白final必须在使用之前在构造期内部进行初始化。Java允许在参数列表中以声明的方式将参数指定为final,这就代表无法在方法中更改参数引用所指向的对象。
使用final方法是为了把方法锁定,以防止任何继承类修改它的含义。
在Java类中的所有private方法都隐式地指定为final,因为无法使用private,所以自然而然没有办法覆盖它。覆写只有在方法是父类的接口的一部分时才会出现,即必须可以将一个对象向上转型为它的基类类型并且调用相同的方法。
如果将一个类的整体定义为final时,就表明不希望继承该类,同时禁止别人这样做。同时,对于该类的设计永远不需要做出变动。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值