-
final关键字代表最终、不可改变的
-
final常见的四种用法
- 修饰类
final修饰类的格式: public final class MyClass { // ... } 含义:当前这个类不能有任何子类(太监类)意思就是说不能作为父类 一个类如果是final的,那么这个类的所有方法都不能覆盖重写(因为没儿子)
- 修饰方法
当final用来修饰方法时,这个方法就是最终方法,无法被覆盖重写 格式: 修饰符 final 返回值类型 方法名称(参数列表){ //方法体 } 注意:对于类、方法来说,abstract和final不能同时使用,因为矛盾
- 修饰一个局部变量
当final用来修饰局部变量时,这个变量的内容就不能再发生改变,也就是“一次赋值,终生不变” 格式 final 数据类型 变量名 = 变量内容; 注意:当final修饰基本数据类型时候,不能变的是变量的数据 当final修饰引用数据类型时候,不能变的是引用的地址值
- 修饰一个成员变量
1.由于成员变量具有默认值,所以用final来修饰的时候,必须要手动赋值或通过构造方法来赋值 2.如果没有手动赋值,必须保证类当中所有的构造方法,最终都会final的成员变量赋值,不然报错 private final String name = "王大锤";
-
四种权限修饰符
public | protected | (default) | private | |
---|---|---|---|---|
同一个类(我自己) | YES | YES | YES | YES |
同一个包(我邻居) | YES | YES | YES | NO |
不同包子类(我儿子) | YES | YES | NO | NO |
不同包非子类 | YES | NO | NO | NO |