Final
final是java语言中的一个关键字
final表示最终的、不可变的
final可以修饰变量以及方法和类
final修饰类
final修饰的类无法被继承
验证
public class demo{
public static void main(String[] args) {
}
final class A {
}
class B extends A{
}
}
运行结果
final修饰的实例方法
final修饰的方法无法被覆盖
验证:
public class demo{
public static void main(String[] args) {
}
class A {
public final void doSome(){
System.out.println("A do some");
}
}
class B extends A{
public final void doSome(){
System.out.println("B do some");
}
}
}
结果如下
final修饰局部变量
final修饰的变量 只能被赋值一次,而且并不是必须在定义时候赋值(与C++里的const不同)
final修饰引用
final修饰的引用只能指向一个对象,并且他只能永远指向该对象,无法再指向其他对象。
但是final修饰的引用指向的对象内部的数据可以被修改
final修饰实例变量
final修饰的实例变量,系统将不再给其赋默认值,而是由程序员通过构造函数赋值,否则会报错。