JAVA基础
final 关键字
文章目录
- JAVA基础
- 概述
- final修饰类
- final修饰方法
- final修饰变量
- 非final类内 final修饰的方法和变量可以被继承类调用
概述
在 Java 中,final 是一个关键字,用于修饰类、方法和变量。
- final 类: 不可被继承。
- final 常量: 只能赋值一次,不可更改。
- final 方法:不可被继承。所有的 private 方法都隐式地指定为 final。
final修饰类
类被声明为 final时,则该类不能被继承。即不能有子类来继承该类。这样可以防止类的修改和扩展,确保类的行为和结构的稳定性。
public final class FinalClass {
}
final修饰方法
方法被声明为 final时,则该方法不能被子类重写或覆盖。子类不能改变父类 final 方法的实现。这样可以确保方法的行为一致性,并且可以提高性能。
final修饰变量
如果一个变量被声明为 final,则该变量只能被赋值一次,赋值后不能再改变。这样可以创建只读变量,保护数据的一致性。
非final类内 final修饰的方法和变量可以被继承类调用
public class NonFinalClass {
public final String FINAL_FIELD = "final field";
public String NON_FINAL_FIELD = "non final field";
public final String finalMethod() {
return "final method";
}
public String NonFinalMethod() {
return "non final method";
}
}
public class ExtendClass extends NonFinalClass {
@Override
public String NonFinalMethod() {
NON_FINAL_FIELD = "override non final field";
return "override non final method";
}
/**
* final field
* non final field
* final method
* override non final method
* override non final field
*/
@Test
public void test() {
System.out.println(FINAL_FIELD);
System.out.println(NON_FINAL_FIELD);
System.out.println(finalMethod());
System.out.println(NonFinalMethod());
System.out.println(NON_FINAL_FIELD);
}
}