概述
final的英文意思是“最终”。在Java中,可以使用final关键字声明类、属性、方法,在声明时需要注意以下几点。
1.使用final修饰的类不能有子类。
2.使用final修饰的方法不能被子类重写。
3.使用final修饰的变量(成员变量和局部变量)是常量,常量不可修改。
下面将对final的用法逐一进行讲解。
1.final关键字修饰类
Java中的类被final关键字修饰后,该类将不可以被继承,即不能派生子类。下面通过一个案例进行验证,如图1所示。
图1:
图1编译结果:
编译图1代码时,编译器报错,如图1编译结果所示。
在图1中,第2行代码定义了Animal类并使用final关键字修饰,第5~6行代码定义了Dog类并继承Animal类。
如图1编译结果所示,当Dog类继承使用final关键字修饰的Animal类时,编译器报“无法从最终cn.itcast.Animal进行继承”错误,即不能继承使用final修饰的Animal类。由此可见,被final关键字修饰的类为最终类,不能被其他类继承。
2.final关键字修饰方法
当一个类的方法被final关键字修饰后,这个类的子类将不能重写该方法。下面通过一个案例进行验证,如图2所示。
图2:
图2编译结果:
编译图2代码时,编译器报错,如图2编译结果所示。
在图2中,第10行代码在Dog类中重写了父类Animal中的shout()方法,编译器报错。这是因为Animal类的shout()方法被final修饰,而被final关键字修饰的方法为最终方法,子类不能对该方法进行重写。因此,当在父类中定义某个方法时,如果不希望被子类重写,就可以使用final关键字修饰该方法。
3.final关键字修饰变量
Java中被final修饰的变量称为常量,常量只能在声明时被赋值一次,在后面的程序中,其值不能被改变。如果再次对该常量赋值,则程序会在编译时报错。下面通过一个案例进行验证,如图3所示。
图3:
图3编译结果:
编译图3代码时,编译器报错,如图3编译结果所示。
在图3中,当第4行代码对AGE进行第二次赋值时,编译器报错。原因在于使用final定义的常量本身不可修改。
注意:
在使用final声明变量时,要求全部的字母大写。如果一个程序中的变量使用public static final声明,则此变量将成为全局变量,如下面代码所示。
public static final String NAME = "哈士奇";
最后
以上就是傻傻歌曲为你收集整理的final关键字的全部内容,希望文章能够帮你解决final关键字所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复