起修饰作用的关键字,“最后的、最终的”。
在修饰类时不能被继承。
在修饰方法的时候方法不可被重写。
在修饰属性时属性不可被修改,且必须在在创建时或构造器中进行初始化(赋值)。
例:
class Person{
String name;
public void sleep(){
System.out.println(name+"is sleeping.");
}
}
final class Teacher extends Person{
final String name;
public Teacher(){
name = "Jeremy";
}
public final void sleep(){
System.out.println(name+"is sleeping on your stomach.")
}
}
错误用法:
class MathTeacher extends Teacher{//Teacher被final修饰,无法被继承
String name = "Tony";//name被final修饰且在父类方法已被初始化,无法再次修改
final int age;//age被final修饰,但未被初始化
public void sleep(){//sleep方法被final修饰,无法被子类重写
System.out.println(name+"is lying in the bed.")
}
}