final 与 static 的定义度娘遍地都是,这里就不再多嘴了。
final:常量 ,用了它,这个东西就不能二次修改了
static: 静态变量,在类加载的时候就会被初始化
static final: 静态常量,在类加载的时候就会被初始化而且不能修改
(为什么使用static final : 为的是我们在其他类中也能访问到此常量,前提这个常量是 public 的或者是在类加载的时候就会被初始化而且不能修改)
用一段代码来简单介绍一下使用场景:
B.java
public class B {
public static final String TAG = "123"; // 静态常量
public static String TAG1 = "456"; // 静态变量
public final String TAG2 = "789"; // 常量
public String TAG3 = "000"; // 变量
public void get() {
System.out.println(B.TAG);
}
// 被 final 修饰的方法其子类不可以重写
public final void noExtend() {
System.out.println("该方法不可以被继承");
}
// 记:被 final 修饰的类,不可以被其他类继承
}
A.java
import com.example.demo20220303.B;
public class A extends B {
@Override
public void get() {
super.get();
}
// 其他类中可以调用父类的公共静态变量或者静态常量,通过 父类.静态变量即可
// 但是如果静态变量设置成了 private 则不能访问
public void method() {
System.out.println(B.TAG);
System.out.println(B.TAG1);
}
}