java关键字:fianl的一些简单的用法

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zhongxu_yuan/article/details/52493856
引入的一个场景是:
有时候子类会去重写父类的方法方法,但是有时候不希望子类重写父类的方法
这个时候java 提供了一个关键字fianl来修饰
那么
子类中的方法不能重写被final修饰的方法
class Father{
public final void show(){
System.out.println("不能修改hello java");
}
}


class Son extends Father{
//编译报错:
//Son中的show()无法覆盖Father中的show()
//被覆盖的方法为final
public void show(){
System.out.println("我修改了hello java文件");
}
}


class Test{
public static void main(String[] args){
Son s = new Son();
s.show();
}
}
final关键字:
意思是最终的


它可以修饰类、方法、变量


final修饰:
A:类  这个类不能别其他类继承
B:方法 这个方法不能被子类重写
C:变量
a:类型为基本数据类   这个变量就称为了常量,常量一旦被赋值就不能再次赋值了,不然就报错了
常量:字面常量  "kevin" "cidy",10,12等
 自定义常量:fianl String num = "001";
b:类型为引用数据类型的时候   地址值不会改变,但是堆内存中的值可以进行修改
比如:
class Student{
int age =10;
}

class StuTest{
public static void main(String[] args){
Student s = new Student();
System.out.println(s.age)://输出结果为:10;

final Student s2 = new Student();
s2.age=100;
System.out.println(s2.age);//输出结果为100;
}
}


在修饰变量(数据类型为基本数据类型的时候)
如果这个变量被赋了初始值,那么这个变量就不能在被赋值,不然会报错。

public class Test3{
public static void main(String[] args){
final int a =12;
System.out.println("a = "+a);

//错误: 无法为最终变量a分配值
a = 21;
System.out.println("a = "+a);
}
}



猜你喜欢

转载自blog.csdn.net/zhongxu_yuan/article/details/52493856