Final关键字的基本用法:
在Java中,final关键字可以用来修饰类、方法和变量(包括成员变量和局部变量)。
Final修饰类时:
当用final修饰一个类时,表明这个类不能被继承,但是要注意final类中的所有成员方法都会被隐式地指定为final方法。
Final修饰成员方法时:
父类的final方法是不能被子类所覆盖(重写)的,也就是说子类是不能够存在和父类一模一样的方法的。但是可以被重载,也就是可以写相同名字但是具有不同参数的成员方法(类的private方法会隐式地被指定为final方法,构造函数默认也是有final的特性)。
Final修饰成员变量时:
赋值有两种种实现方式:
定义成员变量的时候手动赋值(所对象都有一个相同的属性)。
利用构造器对成员变量进行赋值。
总而言之就是在对象生成之前就必须给定值,之后不再变更。
Final修饰局部变量时:
当final修饰一个基本数据类型时,表示该基本数据类型的值一旦在初始化后便不能发生变化;如果final修饰一个引用类型时,则在对其初始化之后便不能再让其指向其他对象了,但该引用所指向的对象的内容是可以发生变化的。本质上是一回事,因为引用数据类型的值是一个地址,final要求值--即地址的值不发生变化。