一、final关键字
“只有客户发展了,才有我们的生存与发展!”这是成都创新互联的服务宗旨!把网站当作互联网产品,产品思维更注重全局思维、需求分析和迭代思维,在网站建设中就是为了建设一个不仅审美在线,而且实用性极高的网站。创新互联对成都网站设计、网站建设、网站制作、网站开发、网页设计、网站优化、网络推广、探索永无止境。
1.如果一个类被final修饰符所修饰,表示该类不可能有子类,这样的类就叫做最终类。final关键字可以修饰类、变量、方法。
2.final关键字修饰类、修饰方法、修饰变量的特点
final关键字修饰类:不能被别的类继承;
final关键字修饰方法:方法也不能被覆盖,也就是方法不能被继承的子类重写;
final关键字修饰变量:成员变量、局部变量是常量,仅一次赋值。
二、final关键字修饰类
1.当类被final关键字修饰,表示这个类是不能被继承的。
2.final关键字修饰类例子
- //定义Fruit类
- final class Fruit{
- //info()方法
- public void info(){
- System.out.print("fruit");
- }
- }
- //定义Cherry继承Fruit类
- class Cherry extends Fruit{
- //infor()方法
- public void info(){
- System.out.print("cherry");
- }
- }
- public class p24 {
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- Cherry c=new Cherry();//实例化子类Cherry对象
- c.info();//调用info()方法
- }
- }
输出的结果是:
从上面的编译结果可以看出是错误的,因为final关键字修饰Fruit类,当Cherry类继承Fruit类时,编译出现了“Unresolved compilation problem: The type Cherry cannot subclass the final class Fruit”表示Cherry类型不能将final类水果子类化,所以final修饰的类是不能被别的类继承的。
三、final关键字修饰方法
1.final关键字修饰方法,表示该类的子类的不可以重写方法。
2.final关键字修饰方法案例
- //定义Fruit类
- class Fruit{
- //使用final修饰info()方法
- public final void info(){
- System.out.print("fruit");
- }
- }
- //定义Cherry继承Fruit类
- class Cherry extends Fruit{
- //重写Fruit类的info()方法
- public void info(){
- System.out.print("cherry");
- }
- }
- public class p24 {
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- Cherry c=new Cherry();//实例化子类Cherry对象
- c.info();//调用info()方法
- }
- }
3.运行的结果是:
从上面的代码中编译结果是错误的,因为Cherry类重写Fruit类的info()方法,我们可以看到final关键字修饰Fruit类的info()方法,所以final关键字修饰的方法是最终的,子类是不能对这个方法进行重写的。如果父类定义的某个方法,不想让子类重写,就可以使用这个final关键字修饰方法。
四、final关键字修饰变量
1.final关键字修饰变量时,变量就变成常量,也就是一旦被赋值,就不能重新赋值。
2.final关键字修饰成员变量,需要在定义显示指定初始值。
3.final关键字修饰局部变量,可以在定义时指定初始值,也可以不指定初始值。
4.final关键字修饰局部变量的例子
- final int i = 3;//第一次赋值
- i= 6;//再次赋值
上面代码中会出现编译错误,因为是重新给i赋值,用final关键字修饰int类型变量i,被final关键字修饰的变量为常量,只能被赋值一次,不可以被重新赋值,i是基本数据类型,i的内容是值。
5.final关键字修饰成员变量例子
- //定义Fruit类
- class Fruit{
- final String name;//final关键字修饰name属性
- double weight=66;//水果的重量weight属性
- //info()方法打印水果信息
- public final void info(){
- System.out.print("我是一个"+name+"重量为:"+weight+"g!");
- }
- }
- public class p24 {
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- Fruit f=new Fruit();//实例化Fruit对象
- f.info();//调用info()方法
- }
- }
运行的结果是:
从上面的运行结果我们可以看到编译是错误的,因为final关键字修饰的成员变量,在定义的时要给它一个初始值。
五、总结
本文主要介绍了final关键字修饰类、final关键字修饰方法、final关键字修饰变量。
final关键字修饰类说明了是不能被别的类继承的。final关键字修饰方法表示该类的子类的方法是不可以被重写的。
final关键字修饰变量时,成员变量、局部变量是常量,仅一次赋值。final关键字修饰类、方法、变量也通过案例帮助理解。
本文转载自微信公众号「 Java进阶学习交流」,可以通过以下二维码关注。转载本文请联系 Java进阶学习交流公众号。
网站名称:一篇文章带你弄懂Final关键字的相关知识
文章转载:http://www.mswzjz.cn/qtweb/news30/266530.html
攀枝花网站建设、攀枝花网站运维推广公司-贝锐智能,是专注品牌与效果的网络营销公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 贝锐智能