词意:终结的,最终的,最后的。
final可修饰的内容:
类(最终类)
方法(最终方法)
变量(最终变量)
final修饰类:此类不能被继承。String、Math、System均为final修饰的类,不能被继承。
final修饰方法:此方法不能被覆盖。意为最终方法,不支持子类以覆盖的形式修改。
final修饰变量:此变量值不能被改变(常量)。所有final修饰的变量只能赋值一次,值不允许改变。
final修饰基本类型:值不可变
final修饰引用类型:地址不可变
静态常量不再提供默认值,必须手动赋予初始值
//class Dog extends Animal{//final修饰的类不能被继承
//
// //final修饰的方法不能被重写
// public void eat(){
//
// }
//}
public final class Animal {
private String name;
//静态的常量
public static final double PI = 3.1415;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public final void eat(){
System.out.println("动物吃东西......");
}
}
class TestAnimal{
public static void main(String[] args) {
//final修饰基本数据类型
final int age = 23;//常量:final修饰基本类型:值不可变
System.out.println("age:"+age);
// age = 34;
// System.out.println("age:"+age);
final Animal a = new Animal();//final修饰引用类型:地址不可变
a.setName("tom");
//
//a = new Animal();
a.setName("12121212");
}
}