final关键字可以用来修饰非抽象类、非抽象方法和变量。
final类不能够被继承,final类下面的方法默认是final方法;
final方法不能够被子类覆盖,但可以被继承;
final成员变量只能够被赋值一次,之后不能够被改变;
final不能修饰构造方法;
1、final修饰非抽象类,该类不能够被继承,该类下面的方法默认都是final方法。在架构设计过程中,如果某个类不需要被继承,类细节不允许被修改,可以设计成为final类。比如String类。
2、final修饰非抽象方法,使用final修饰的方法,该方法不能被子类覆盖。如果父类中同时使用private修饰,那么该类本身不会被自类继承,所以子类可以书写相同的方法名和参数了,这样解决了重写与final修饰矛盾的问题。使用final修饰方法目的:
(1)、锁定方法,防止任何实现该类的子类修改该方法的含义。
(2)、高效,编译器再遇到final方法时会转入内嵌机制,提升效率。
3、final修饰变量
final修饰的变量,只可以赋值一次,之后不允许被修改。用final修饰的基础类型不能够再次赋值,final修饰的对象类型,对象引用不能够更改,但是对象本身可以修改。另外final修饰的变量可以在声明时不赋值,在使用前赋值即可。
使用final修饰传递的参数,你可以使用该参数,但不能修改该参数。