注: final修饰符:【不能和abstract同时用】
final意义: 具有"不可改变的"含义,它可以修饰非抽象类、非抽象成员方法和变量。
修饰类:该类不能被继承,没有子类。
继承关系是打破封装,子类能够访问父类的方法,而且能以方法覆盖的方式修改实现细节。
1:子类有可能会错误地修改父类的实现细节;
2:出于安全,类的实现细节不允许有任何改动;
3:在创建对象模型时,确信这个类不会再被扩展;
修饰方法:该方法不能被重写【可以被重载】
1: 某些情况下,出于安全原因,父类不允许子类覆盖某个方法,
此时可以把这个方法声明为final类型。
2: final方法不能被重写(可以重载多个final修饰的方法)。
注:private类型的方法默认是final类型的
修饰变量:该变量是常量(常量池),【只能被赋一次值。】必须要赋初始值,
非静态final成员变量:
0,声明的同时赋值
1,可以在匿名代码块中赋值
2,可以在构造器中赋值
静态的final成员变量:
0,声明的同时赋值
1,可以在静态代码块中赋值
【只能一次赋值,并且不能修改】
注:final不能用来修饰构造方法, 因为"方法覆盖"这一概念仅适用于类的成员方法,而不适用于类的构造方法,父类的构造方法和子类的构造方法之间不存在覆盖关系. 因此用final修饰构造方法是无意义的。