简述final关键字的作用
表示为最终的,可以修饰类,修饰方法,修饰变量
修饰类:表示类不可以被继承,把父类变成了太监类
修饰方法:表示方法不能被子类覆盖(形参列表和返回值不变,方法中业务进行改变),但可以进行重载(也就是可以设置不同的形参和返回值,但方法业务不能更改)
修饰变量:表示变量一旦被赋值就不能更改它的值
如果修饰的是静态变量 需要在声明变量时赋值或在静态代码块中进行赋值,
例如 : public static final int i = 10;或 static{静态代码块进行赋值}
如果修饰的是成员变量 可以在声明变量时赋值,调用时赋值,和在 普通代码块中进行赋值
{ 我是普通代码块 } static{ 我是静态代码块 }
如果修饰的是局部变量 可以声明时不进行赋值,但使用时一定要赋值,但不能进行第二次赋值
修饰基本数据类型变量,一旦初始化不能更改;
修饰引用数据类型,一旦初始化不能指向另一个对象,但是引用的值是可变的。