首先说明一下final关键字的基本用法,final翻译过来就是最终的意思,也就是处于最后的位置,是不可被修改的,final关键字主要用于修饰类、方法和变量
final修饰类表明该类不能被继承
final class Animal{}
class Wolf extends Animal{} //不能继承
对于JDK【Java开发工具包】中也是有许多我们常见的用final修饰的类,只是我们没有认真地去阅读API文档,所以不太了解
其实在JDK中还要很多我们熟知的类都是用final关键字修饰,表明这些类都是不可以被继承的,是一种Java官方提供给我们的工具类,我们可以直接拿来使用,调用其中的功能即可
final修饰的方法称为
密封方法
。该方法不能被重写❌
class People{
public final void eat(){ //不能重写
System.out.println("人都要吃东西");
}
}
class Student extends People{
@Override
public void eat() {
System.out.println("学生吃很多");
}
}
final修饰成员变量表示该变量在进行声明时只能进行一次赋值,不可在后面修改其值(有且仅能被赋值一次)
//1.局部变量
final double pi = 3.14;
//pi = 9.1; 不能第二次赋值
public static void buy(final double discount){
//discount = 9.9; 不能第二次赋值
}
buy(7.9); //接值的时候为第一次赋值
接下来我们来看看final修饰的成员变量
public class Test2 {
//2.成员变量 - 静态成员变量(常量)
public static final String SchoolName = "清华大学";
//2.成员变量 - 实例成员变量(几乎不用)
private final String name = "丘成桐";
//SchoolName = "ddd"; 无法赋值
Test2 t2 = new Test2();
System.out.println(t2.name);
//t2.name = "丘比特"; 无法赋值
}
那倒也不是☝️
基本类型
:那么变量存储的数据值不能发生改变引用类型
,其地址值不能改变,但指向对象的内容可以改变class Teacher{
private String hoppy;
public Teacher(String hoppy) {
this.hoppy = hoppy;
}
public String getHoppy() {
return hoppy;
}
public void setHoppy(String hoppy) {
this.hoppy = hoppy;
}
}
final Teacher t = new Teacher("吃饭,睡觉,打豆豆");
System.out.println(t.getHoppy());
//t = null; //二次赋值
t.setHoppy("游泳");
System.out.println(t.getHoppy());
好了,这就是本文所要介绍的所有内容,感谢您的观看,关注我,带你玩转Java关键字