final是java中的修饰符,可以修饰类、方法、变量、参数、属性,不能修饰接口、抽象类以及构造方法。
1、被final修饰的类不能够被继承,因此final类的成员方法不会被重写,默认都是final的。
注:在设计类的时候,如果这个类不需要有子类,类的实现细节不允许改变,并且这个类不会被扩展,那么就设计为final类。
2、被final修饰的方法不能被重写,但是可以重载。
注:如果一个类不允许其子类重写某个方法,那么可以把这个方法声明为final方法。
3、被final修饰的变量实质上相当于常量,在使用前必须被初始化。
注:被final修饰的变量只能被赋值一次,一旦有了初始值之后,值就不能被修改。可以在定义的时候进行初始化,也可以在构造方法中进行。
4、被final修饰的参数称为最终参数,此时可以读取参数,但是不能修改参数的值。
5、final不能用来修饰抽象类和接口
注:定义抽象类就是让其他类继承的,如果定义为final,该类就不能够被继承,彼此产生矛盾。
Java中的接口是一系列方法的声明,是一些方法特征的集合,其中包含常量和方法的声明,,接口可以看做是—种特殊的抽象类。