final关键字

举报
王小贰 发表于 2021/01/30 11:35:11 2021/01/30
【摘要】 final关键字final关键字主要有3种作用:1、修饰变量的定义2、修饰类的定义3、修饰类中的普通方法修饰变量的定义当使用final修饰变量的时候(属性/静态属性/形参变量/局部变量),变量仅允许一次赋值机会,就不能被改变了。例如:final int a = 10;final int b;b = 20;123当变量a=10,被final修饰后,就不能被修改a的值,如果修改,会报错不能完成编...

final关键字

final关键字主要有3种作用:
1、修饰变量的定义
2、修饰类的定义
3、修饰类中的普通方法

修饰变量的定义

当使用final修饰变量的时候(属性/静态属性/形参变量/局部变量),变量仅允许一次赋值机会,就不能被改变了。

例如:

final int a = 10;
final int b;
b = 20;
  • 1
  • 2
  • 3

当变量a=10,被final修饰后,就不能被修改a的值,如果修改,会报错不能完成编译。
我们知道,当局部变量定义的时候,需要被初始化,否则会报错,但是被final修饰的局部变量可以,但是只允许被赋值一次。

修饰类的定义

当使用final修饰这个类的时候,这个类不能被继承,即:这个类不能有子类。

public final class TestDemo {
    int a=10;
}
class B extends TestDemo{
    
}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

在这里插入图片描述

修饰类中的普通方法

当使用final修饰这个类中的方法的时候,这个方法不能被重写。

public class TestDemo {
    int a = 10;

    public void method(){
        System.out.println();
    }

}
class B extends TestDemo{

    @Override
    public void method() {
        super.method();
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

在这里插入图片描述
当使用final修饰方法后,便不能被重写,编译器也会报错

public class TestDemo {
    int a = 10;
    public final void method() {
        System.out.println();
    }
}

class B extends TestDemo {
    @Override
    public void method() {
        super.method();
    }
}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

在这里插入图片描述

总结:

final关键字的功能是“限制”,当然了,限制也意味着不灵活。在编程中,过于灵活不是一件好事,意味着更容易出错。
我们要根据自己实际的需求,决定是否使用final关键字


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。