我们一起学猫叫,一起喵喵喵喵喵~~~~~~~
嘿嘿嘿,你们可爱的小北又回来啦
今天我们讲什么呢?看题目就知道啦,我们要研究的就是java中的final关键字
首先上思维导图:
各位小可爱有木有jio的,今天的内容很少呢!嘿嘿嘿
【1】为什么要用final这个关键字?
原因:由于继承中有一个方法重写的现象(具体方法重写的细节,请参考小北上一篇博客),而有时候我们不想让子类去重写父类的方法,对于这种情况java就给我们提供了一个关键字:final
【2】final概述:final关键字是最终的意思,可以修饰类,变量,成员方法。
【3】final修饰特点:
A:修饰类:被修饰类不能继承
B:修饰方法:被修饰的方法不能重写
C:修饰变量:被修饰的变量不能被重写赋值,因为这个量其实是一个常量
D:修饰基本类型:基本类型的值不能改变
E:修饰引用类型:地址值不能改变
这个时候,有的小可爱可能还不太懂,小北给大家举个例子吧。
public class MyDemo4 {
public static final int NUMBER=500;//公共的静态常量
public static void main(String[] args) {
//final 最终的 可以修饰变量,可以修饰类,可以修饰方法
// final 修饰变量,变量就称为常量
//常量:字面值常量,自定义常量 常量的名称字母大写
final int NUM=100; //自定义常量
System.out.println(NUM);
System.out.println(NUMBER);
}
}
这里的NUM和NUMBER都是被final 修饰的 因此不能被修改
再看一个例子:
这是父类,final修饰了一个方法
public class Fu{
public void show() {System.out.println("fushow"); }
//final 修饰方法后,修饰之后此方法不能被子类重写
public final void showfinal(System.out.println("fushow"););
}
这是一个子类,是父类的继承类
public class Zi extends Fu{
@Override
public void show() {System.out.println("子show");}
}
再加一个测试类
public class Test{
public static void main(String[] args){
new Zi().showFinal();
final int num=100;
//final引用数据类型,指的是这个引用的地址值不能再改变了
final Zi zi = new Zi();
//zi=new Zi();报错不能再赋值了
}
}
这个时候小北来测试一下:
如果这个时候,要再给zi 来new一个新Zi的话就会报错了,如下
显示final修饰的zi不能再赋新值了。