1、final修饰类
final修饰的类不能被继承。因此final类的成员方法没有机会被覆盖,默认都是final的。在设计类时候,如果这个类不需要有子类,类的实现细节不允许改变,并且确信这个类不会再被扩展,那么就设计为final类。
final类里面的方法不能被重写,但可以被继承。
2、final修饰方法
当一个类的方法被final 关键字修饰后,这个类的子类将不能重写该方法。
使用final方法的原因有二:
第一、把方法锁定,防止任何继承类修改它的意义和实现。
第二、高效。编译器在遇到调用final方法时候会转入内嵌机制,大大提高执行效率。
3、final修饰变量(常量)
用final修饰的成员变量表示常量,只能被赋值一次,赋值后值无法改变!
这里有两种初始化方式,一种是在变量声明的时候初始化;第二种方法是在声明变量的时候不赋初值,但是要在这个变量所在的类的构造函数中对这个变量赋初值。
当final修饰一个基本数据类型的时候,表示该数据类型的值一旦在初始化之后便不能发生变化;如果final修饰的是一个引用类型的时候,则在其初始化之后便不能让其在指向其他对象了,但是指向对象的内容是可以发生变化的。
final修饰的变量有三种:静态变量、实例变量和局部变量,分别表示三种类型的常量。