final关键字与权限修饰符
发布于2019-09-24 19:57:09,更新于2020-06-15 11:33:29,标签:java 文章会持续修订,转载请注明来源地址:https://meethigher.top/blog一、final关键字
final关键字代表最终、不可改变的的。
常见四种用法:
- 可以用来修饰一个类
- 还可以修饰一个方法
- 还可以用来修饰一个局部变量
- 还可以用来修饰一个成员变量
修饰类
当final关键字用来修饰一个类的时候,
格式:
1 | public final class 类名称 { |
含义:当前这个类,不能有任何子类,也就是太监类(继承就会报错)
注意:一个类如果是final的,那么其中的所有的成员方法都不能进行覆盖重写(因为没有儿子)
修饰方法
当final关键字用来修饰一个方法的时候,这个方法就是最终方法,也就是不能被覆盖重写。
格式:
1 | 修饰符 final 返回值类型 方法列表(参数列表){ |
注意事项:
对于类、方法来说,abstract和final关键字不能同时使用,因为矛盾(abstract是一定要被重写的,final关键字是不能被重写的)
修饰局部变量
Student.java
1 | public class Student { |
Main.java
1 | public static void main(String[] args) { |
修饰成员变量
对于成员变量来说,如果使用final关键字来修饰,那么这个变量也不可变
- 由于成员变量具有默认值,所以用了final之后,必须手动赋值,不然就是默认值,且无法改变
- 对于final的成员变量,要不直接赋值,要不通过构造方法赋值。二者选其一
- 必须保证类当中所有重载的构造方法,都最终会对final的成员变量进行赋值,如果不能用,就直接赋值
1 | public class Person { |
二、权限修饰符
Java中有四种权限修饰符
public | protected | (default) | private | |
---|---|---|---|---|
同一个类(我自己) | Yes | Yes | Yes | Yes |
同一个包(我邻居) | Yes | Yes | Yes | No |
不同包子类(我儿子) | Yes | Yes | No | No |
不同包非子类(陌生人) | Yes | No | No | No |
注意事项:
(default)不是关键字,而是根本不写
打赏