Java语言中的final关键字

final代表的是最终的,无法被修改的,

final修饰类代表的是无法被继承的;

		final class A1 {
			public void test1() {
		}
	}
	//不能继承 A1,因为 A1 采用 final 修饰了
	class B1 extends A1 {
		public void test2() {
		}
	}

final修饰的方法表示无法被重写,覆盖;

class A1 {
		public final void test1() {
	}
}
class B1 extends A1 {
	//覆盖父类的方法,改变其行为
	//因为父类的方法是 final 修饰的,所以不能覆盖
	public void test1() {
		}
	public void test2() {
		}
}

final修饰的变量,一旦被赋值,不能重新被赋值。final修饰的变量只能赋一次值。

public class FinalTest03 {
		private static final long CARD_NO = 878778878787878L;
		public static void main(String[] args) {
			//不能进行修改,因为 CARD_NO 采用 final 修改了
				CARD_NO = 99999999999999L;
			}
}

final修饰的引用,该引用只能指向一个对象,并且它只能永远指向该对象,无法再指向其他对象;在该方法执行过程中,该引用指向对象之后,该对象不会被垃圾回收器回收,直到当前方法执行结束,才会释放。引用指向的对象不能换,但是引用内部的数据可以进行更改。

final修饰的实例变量,系统不管默认赋值,要求程序员必须进行手动赋值,Java程序设计不背锅,不给final修饰的实例变量赋初始值。实例变量本身就是在构造方法执行的时候进行赋值,所以final修饰的实例变量,只要赶在系统赋默认值之前执行就可以。也就是实例变量在定义的时候可以不进行赋值,在构造方法里边赋值。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值