final关键字
final关键字

final关键字可用于修饰类、变量和方法,它有“这是无法改变的”和“最终的含义”,因此被final修饰的类、变量和方法具有以下特性:
1.final修饰的类不能被继承。
2.final修饰的方法不能被子类重写。
3.final修饰的变量(包括局部变量和成员变量)是常量,只能被赋值一次。
一:final关键字修饰类
Java中的类被final关键字修饰后,该类将不可以再被继承,也就是不能够派生子类。
//使用final关键字修饰Cat类
final class Animal{
//方法体
}
//Dog继承Animal类
class Dog extends Animal{
//方法体
}
class Example{
public static void main(String []args){
Dog d=new Dog(); //创建实例对象
}
}
程序运行后回报错,是因为final关键字修饰Animal类,当Dog继承自Animal时,出现了无法从最终Aniaml进行继承的错误。由此可见被final修饰的类为最终类,将无法再继承。
二:final关键字修饰方法
当一个类的方法被final关键字修饰后,这个类的子类不能重写该方法。
//定义Animal类
class Animal{
//使用final关键字修饰shout方法
public final shout(){
……………………
}
}
class Dog extends Animal{
//重写Animal中的shout()方法
public void shout(){
……………………
}
}
class Example{
public static void main(String []args){
Dog d=new Dog();
}
}
当Dog类重写父类中的shout方法时,编译会报错,这是因为父类中的方法被final修饰,子类对该方法不能进行重写。正是因为final这种特性,当我们在父类中定义某个方法时不希望该方法被子类重写,那么我们就可以用final修饰该方法。
三:final关键字修饰变量
Java中被final修饰的变量为常量,只能被赋值一次,也就是说final修饰的变量一旦被赋值,它的值将不能再改变。
public class Example{
public static void main(String []args){
final int age=45;
age=41; //再次赋值就会报错
}
}
当对age进行重新赋值的时候,编译报错,原因在于age被final修饰,由此可见,被final修饰的常量只能被赋值一次,其值不可改变。
小沐CA

浙公网安备 33010602011771号