final 关键字
final 最终的
final 的使用
- 采用 final 修饰的类不能被继承
- 采用 final 修饰的方法不能被覆盖
- 采用 final 修饰的变量不能被修改
- final 修饰的变量必须显示初始化
- 如果修饰的引用,那么这个引用只能指向一个对象,也就是说这个引用不能再次赋值,但被指向的对象属性是可以修改的
- 构造方法不能被 final 修饰
--------------------------------------------------------------------------------
案例一:Animal 类有final 修饰,Dog 类就不能继承Animal 类了。
案例二:Animal 类中的eat() 方法有final 修饰,Dog 类就不能方法覆盖了。
案例三:a 已被final 修饰为常量,故不能再另外赋值了。
案例四:常量A 没初始化会报错。
当然,也可以通过构造函数来初始化。
案例五:final 修饰的引用d1不能再指向另一个对象了。
但是,d1 所指向的对象属性是可以修改的。比如修改d1.name
案例六:构造函数无返回值,不用写也不能写void,最多用public、protected、private修饰就可以了。