final总结

来源:互联网 发布:国际地图导航软件 编辑:程序博客网 时间:2024/06/06 20:05

final变量


final修饰的变量即常量,java的常量是有类型的,如

final int MAX = 100;

常量的优点:增加可读性及可维护性

final修饰的变量有三种:静态变量、成员变量和局部变量

final变两能被显示的初始化且只能初始化一次,修饰局部变量时在使用前初始化即可,而修饰成员变量必须在声明的时候初始化或在构造器中初始化,否则会编译报错。没有在声明的时候初始化的又叫空白final,空白final给final的使用提供了更大的灵活性,因此一个类中的final成员可以实现依对象不同而有所不同,却又保持其恒定不变的特征。

final参数,当函数参数为final类型时,可以读取使用该参数,但不能改变该参数的值,若参数是引用类型,则无法改变参数引用所指向的对象,但还是可以更改所指向对象自身的内容的。


final方法(最终方法)


final修饰方法时,则该方法不能被子类覆盖,使用final方法的原因有:

1、把方法锁定,防止任何继承类修改它的意义和实现

 2、高效。编译器在遇到final方法时会转入内嵌机制,在编译时静态绑定了而不需要在运行时候进行动态绑定,大大提高执行效率

父类的private方法是不能被子类方法覆盖的,因此private类型的方法默认是final类型的。


final类(最终类)


使用final修饰的类叫final类,final类通常是功能完整的,不能被继承。所以final类的成员方法没有机会被覆盖,默认都是final的。


final和abstract这两个关键字是反相关的,两者不能同时存在。