final类功能概述
final类可以修饰引用、类、方法
修饰引用
①:如果此引用是基本数据类型或者是string,则该引用是常量,该值无法修改
②:如果引用是引用数据类型,比如:对象、数组,则该数组、对象本身可以修改,但是指向该对象、引用的地址不能修改
③:如果引用是成员变量,则必须在声明的时候赋值,否则会报错
修饰方法
当修饰方法的时候,这个方法将成为最终的方法,无法被子类重写,但是可以被继承,被final修饰的方法可以防止子类修改其方法实现的意义,final方法执行效率一般要优于普通方法,
class Person {
public final void say() {
System.out.println("hello....");
}
public void eat() {
System.out.println("world...");
}
}
class Teacher extends Person {
//1. final修饰的方法不能被重写,但此方法仍然被继承
/*@Override
public void say() {
System.out.println(".0001..");
}*/
public void eat() {
System.out.println(".002..");
}
}
public class Demo02 {
public static void main(String[] args) {
Teacher t = new Teacher();
t.say();
}
}
当final修饰类的时候,该类成为最终类,无法被继承,更不能重写,并且,类中的方法和属性都是final类型,
String就是个final修饰的类