如果在指定变量值之后,就不想再改变变量值,可以在声明变量时加上final限定,如果后续撰写程序时,自己或者别人不经意想改变final变量,就会出现编译错误。
如果对象数据成员被声明为final,但没有明确使用=指定变量值,那表示延迟对象成员值的指定,在构造函数执行流程中,一定要有对该数据成员指定值的动作,否则编译错误。
final限定类
如果class前使用了final关键字定义,那么表示这个类是最后一个了,不会再有子类,也就是不能被继承。如果打算继承final类,则会发生编译错误。比如String类是一个final类。
final限定方法
如果定义方法时限定该方法为final,这表示这是最后一次定义方法了,也就是说子类不可以重新定义final方法。如果在继承父类后,重新定义final方法,则会发生编译错误。比如Java.lang.Object.notify()就是一个final方法。