final关键字

举报
Java的学习之路 发表于 2022/03/24 10:59:23 2022/03/24
【摘要】 1. 基本介绍final中文意思:最后的,最终的final可以修饰类,属性,方法和局部变量1.final修饰的类,不可以被继承2.final修饰的方法,不可以被重写3.final修饰的变量为常量,不可以修改public class Final01 {public static void main(String[] args) { E e = new E();//e.TAX_RATE = 0...

1. 基本介绍

final中文意思:最后的,最终的
final可以修饰类,属性,方法和局部变量

1.final修饰的类,不可以被继承
2.final修饰的方法,不可以被重写
3.final修饰的变量为常量,不可以修改


public class Final01 {
public static void main(String[] args) {
	E e = new E();
//e.TAX_RATE = 0.09;
	}
}

//如果我们要求 A 类不能被其他类继承
//可以使用 final 修饰 A 类
final class A { }
//class B extends A {}

class C {
//如果我们要求 hi 不能被子类重写
//可以使用 final 修饰 hi 方法
public final void hi() {}
}
class D extends C {
@Override
public void hi() {
	System.out.println("重写了 C 类的 hi 方法..");
}



//当不希望类的的某个属性的值被修改,可以用final 修饰
class E {
public final double TAX_RATE = 0.08;//常量
}

//当不希望某个局部变量被修改,可以使用final 修饰
class F {
public void cry() {
//这时,NUM  也称为 局部常量
final double NUM = 0.01;
//NUM = 0.9;
	System.out.println("NUM=" + NUM);
	}
}

2.使用细节

在这里插入图片描述
在这里插入图片描述
final修饰的类已经不能被继承了,那么这个类里面的方法就肯定不能被重写

public int addOne(final int x) { //下面的代码是否有误,为什么?  
++x;   //错误,原因是不能修改 final x 的值
return x + 1; //这里是可以.
}
}

3.总结

1.修饰的变量是常量,常量的值一旦在创建时被赋值就不可修改
2.final修饰的对象的引用不能修改,但引用指向的属性可以修改
3.final修饰的数组元素可以修改,但是数组的引用不可修改
4.final修饰的类不可以被继承
5.final修饰的方法不可以被子类重写

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

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

全部回复

上滑加载中

设置昵称

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

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

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