目录
在 Java 中声明类、属性和方法时,可以使用关键字 final 来修饰。
一、final 标记类不能被继承
示例
final class FinalClass { // 定义一个final标记的类,代表不能被继承
}
/**
* 编译不通过,提示
* 类型 Main 不能成为终态类 FinalClass 的子类
*
*/
public class Main extends FinalClass {
}
编译不通过,提示:类型 Main 不能成为终态类 FinalClass 的子类。但是被 final 修饰类可以有父类。
二、final 标记的方法不能被子类覆写
示例
编译不通过:不能覆盖parentClass中的 final 方法。
三、final 标记的变量称为常量
final 修饰的变量即为常量,只能赋值一次。
3.1、final 修饰成员变量
编译提示,需要初始化。
第一种直接初始化(赋值)
public class Main {
private final String name = "张三";
}
第二种代码块初始化(赋值)
public class Main {
private final String name;
{
name = "张三";
}
}
代码块会在类创建之前执行。
第三种构造方法初始化(赋值)
public class Main {
private final String name;
public Main(String name){
this.name = "张三";
}
}
3.2、final 修饰局部变量
final修饰局部变量,在定义时该变量可以不被直接初始化,但是在使用该变量之前,该变量必须完成初始化,否则编译不通过。
四、小结
1、final 标记类不能被继承。
2、final 标记的方法不能被子类覆写。
3、final 标记的变量称为常量,只能赋值一次。