Java Final关键字
2019-01-02 本文已影响0人
ZhiJunPan
Java中的final是一个Java的保留关键字可以应用于变量,方法,与类,一旦引用final关键字来修饰一个引用,便无法对该引用进行修改。
final变量
- 对一个变量前加上final关键字之后,该变量即为final变量,对于一个final变量,如果是基本数据类型的变量,则其数值一旦在初始化之后便不能更改;如果是引用类型的变量,则在对其初始化之后便不能再让其指向另一个对象。
public static final int capacity=0;
capacity++;(cannot assign a value to final variable 'capacity')
- 对final变量进行修改的话会报编译错误
final方法
- 使用final关键字来修饰方法,即代表此方法不可以被子类的方法重写,如果你认为一个方法的功能已经足够完整了,子类中不需要改变的话,你可以声明此方法为final。final方法比非final方法要快,因为在编译的时候已经静态绑定了,不需要在运行时再动态绑定。
public class ClassRoom {
final public void printInfo(){
System.out.pringline(ClassRoom);
}
}
public class MusicClassRoom extends ClassRoom {
public void printInfo(){
//overridden method is final
}
}
- 重写父类中的final方法时会报编译错误
final类
- 使用final关键字来修饰一个类,即代表类的功能很完善,不需要被继承,也无法被继承。
public final class ClassRoom {
final public void printInfo(){
}
}
public class MusicClassRoom extends ClassRoom {
// Cannot inherit from final 'ClassRoom'
}
- 继承一个final类的时候会报编译错误
Tips
- final类中的所有成员方法都会被隐式地指定为final方法
- private方法会隐式指定为final方法