final
可以用来修饰类,方法,变量。
- 修饰类的时候,该类不能被继承。
- 修饰方法的时候,该方法不能被重写。
- 修饰变量的时候,该变量只能被赋值一次。
public class Student {
public final int a = 10;
public int getA() {
return a;
}
public final void introduce() {
System.out.println("我是一个学生");
}
}
如上述代码
当添加set方法后程序是正确的我们可以得到a的值,但是当我们试图用set方法改变这个值的时候就会报错
这里的报错信息是:The final field Student.a cannot be assigned。
也就是印证了上面的修饰变量的时候该变量只能被赋值一次。
接下来我们定义一个大学生类去继承学生类。而后我们去试图重写它的introduce方法,也就是重写这个静态方法。
其将会出现如下报错信息:
Cannot override the final method from Student。
也就是静态方法不能够重写。
接下来我们将这个类改为静态类:
public final class Student {
public final int a = 10;
public int getA() {
return a;
}
public final void introduce() {
System.out.println("我是一个学生");
}
}
而后我们再书写一个类去试图继承这个类:如下的大学生类
这里报错信息如下:
The type College_Students cannot subclass the final class Student。
也就是这个是最终类不能够被继承。