final关键字在java中可以用来修饰: 数据、方法、类
在java中,数据可以分成三种:局部变量、实例变量、类变量。
局部数据:包括局部变量与方法参数(static关键字不能修饰局部变量)
实例数据:类中的非static关键字修饰的属性
类变量:类中static关键字修饰的属性
类中的数据按照类型分,可以分成:基本类型数据、引用数据。final关键字在修饰数据时,结合类型分类会比较好。
private final int i=0;
private final Map map=new HashMap<String,String>();
private final static int i=10; private final int j=10;
final int i=rand.nextInt(20); static final int j=rand.nextInt(10);
final 修饰方法又两层 考虑:第一个是不希望方法被覆盖,但允许重载。第二个是 建议方法内联(现在的虚拟机不需要了)。所以下面只说第一个方面
在子类中,可以定义与父类中的private方法签名相同的方法,因为private 方法只能被类自己访问,不能被其他类访问。
所以根据访问位置是可以区分哪个是父类的private方法,哪个是子类的private 方法。自然是在父类中可以访问的private方法是父类的,在子类中可以访问的方法是子类的。
所以不存在歧义。
final 修饰的类,表示这个类不能被继承。在final类中是否定义final域,可以根据个人意愿决定。 在final类中也可以给方法加入final关键字,但是就算给方法加入了final修饰符,也不会增加任何意义
原文:https://www.cnblogs.com/cplinux/p/12864132.html