一、final关键字的引入
在继承中,字方法会重写掉父方法中的方法,如何防止:引入final关键字。
Final:最终,常见的是修饰类,方法和变量。
二、final修饰的特点:
(1)final修饰类:
该类不能被继承。
(2)final修饰方法:
该方法不能被重写(覆盖)。
(3)final修饰变量:
该变量不能被重写赋值。这个变量现在被称为常量。
补充:
字面值常量:“hello world” true
自定义常量:final int x =10;
三、两个面试题
(1)final修饰局部变量的问题:
A:基本类型:基本类型的值不能发生改变。
B:引用类型:引用类型的地址值不能发生改变。
(2)final修饰变量的初始化时机:
A:被final修饰的变量只能被赋值一次。
B:在构造方法完毕前。(非静态的常量)。
四、总结:
final关键字的目的是防止在继承中子类会重写掉父类中的方法。它可以修饰变量、方法、类。修饰变量,变量只能被赋值一次;修饰方法,方法不能被重写;修饰类,该类不能被继承。这里还涉及到构造方法、成员方法以及构造代码块的执行先后问题。