前几天学过方法重写,也就是说,一个类继承至父类,子类可以将父类的方法重写。
但有的时候父类的方法要求固定,不能被更改。
该怎么办?
这就得学到一个新的修饰符了。
final,翻译成中文就是“不可更改的 ”。
顾名思义,它是一个修饰符,用于修改不可更改的内容。
1.修饰类和方法
①final修饰类,类不能被继承。
既然不能被继承,那final类里的方法也无法被重写。
②final修饰方法,方法不能被重写。
非final类中,也可以存着final方法。
注:其中final方法是可以被重载的(同名不同参)
2.修饰局部变量
③用final修饰基本数据类型局部变量。
只能赋值一次,不能再更改了,编译会报错。
基本数据类型不能更改的是值。
④用final修饰引用数据类型局部变量。
只能创建对象一次,不能再次创建对象,编译会报错。
引用数据类型不能更改的是对象的地址。
该对象的值是可以通过对应的setXXX()方法更改的。
3.修饰成员变量
成员变量和局部变量有一个区别在于:
成员变量是有默认值的。
所以用final修饰成员变量,它就不再有默认值了,必须一步直接赋值 。
初始化方式有两种,只能二选一:
⑤直接初始化赋值。
⑥构造方法赋值。
注意:用setXXX()方法无法赋值。
public这个关键字太常见了,它就是一个权限修饰符。
在Java语言里面有四种权限修饰符。
其实看字面意思也蛮好理解的:
①public:公共的。
②protected:受保护的。
③default:默认的。
④private:私有的。
权限是从大到小的:
public > protect >default>private
修饰符除了权限修饰符和final修饰符,常见的还有abstract和static修饰符。
这两个关键字前面都学过,做一个回顾:
1.abstact修饰类
表明这是一个抽象类。
抽象类不能创建对象生成实例,需要使用子类实例化
2.abstact修饰方法
表明这是一个抽象方法,只有方法名,没有方法体。
需要子类重写。
3.static修饰方法
静态方法只能访问静态变量。
静态方法可以用类名直接调用。
4.static修饰变量
也可称为类变量,局部变量不能被static修饰。
也可以用类名直接调用。
5.static修饰代码块
随着类的加载而加载一次,相当于初始化赋值。