Java final修饰的基本使用

//final修饰的方法: 表明方法是最终方法,不能被重写
//final修饰的类: 表面类是最终类,不能被继承
//final修饰的变量: 表面变量为常量,不能在程序中被重新赋值
public class Test {
public static void main(String[] args) {
Zi z = new Zi();
Fu f = new Fu();
z.getPi(); //调用Fu类中无法被重写的getPi方法
System.out.println("==========================");
z.sum(5,6); //调用子类中被重写的sum方法
System.out.println("==========================");

//变量使用final修饰后无法被修改,变成常量,常量单词一般全大写组成。单词之间使用下划线隔开
//常量类型为基本数据类型时,记录的值不能发生改成。byte、char、short、int、long、float、double、boolean
//常量类型为引用数据类型时,记录的地址值不能发生改变,内部的属性值可以改变。
//如对象使用final修饰后,还是可以调用set方法修改对象中的属性
final int A = 10;
// A = 12; //报错,因为A是常量。无法修改,在定义时就必须完成赋值
System.out.println(A);
}
}

class Fu {
public final void getPi() {
System.out.println("我是被final修饰的getPi方法,位于Fu类中");
System.out.println("3.14159265358979323846");
}

public void sum(int a, int b) {
System.out.println("我是没被final修饰的sum方法,位于Fu类中");
System.out.println(a+b);
}
}

class Zi extends Fu {
//sum方法没有被final修饰,可以被重写
@Override
public void sum(int a, int b) {
System.out.println("我是没被final修饰的sum方法,位于Zi类中");
System.out.println(a+b);
}

//getPi方法被final修饰,不能被重写,报错
// @Override
// public final void getPi() {
// System.out.println("我是被final修饰的getPi方法,位于Fu类中");
// System.out.println("3.14159265358979323846");
// }
}