前言:
--初学者的学习笔记--
自己学习的理解,方便自己回顾和发现自己学习中存在的问题(理解错误和不理解)。谨慎参考。
一、final关键字是什么?
能够修饰 类、属性、方法以及局部变量
二、final使用
1.在某个类如 Animal 前加入final,该类将不能够被继承
代码如下(示例):
final class A {
private String name;
}
class B extends A {//该处提示不能被继承
}
2.不希望 子类 覆盖/重写父类某个方法时,在该方法前加入final
代码如下(示例):
class A {
private int age;
public final void say() {
}
}
class B extends A {
public void say() {//此处报错
}
}
3.final修饰属性
被final修饰的属性又被称为常量,命名规范为XX_XX_XX 。
常量的三种定义方式:
(1)直接用final修饰,此时必须要赋初值
public final double PI = 3.14;
(2) 初值在构造器中赋值。但若此时定义PI的语句 public final double PI;为一个静态修饰的,即public static final double PI;不能够采用在构造器中赋初值。只能采用(1)或者静态代码块 static { }赋初值
class A {
private String name;//姓名
public final double PI;//圆周率
public A(String name) {
this.name = name;
PI = 3.14;
}
}
(3)在代码块中赋值
class A {
public final double PI;
{
PI = 3.14;
}
}
三、final细节
(1)final定义的类不能够继承,但是可以实例化对象。
(2)父类中某个方法如:say(); ,被final修饰,子类不能够重写和覆盖,但是可以用父类的say();
(3)当类被final后,就不需要再对类中的方法用final修饰了
(4)final不能修饰构造器
(5)包装类也是final类因此不能够继承
四、总结
final关键字为最终的、最后的在继承中多使用,通常用来定义常量。final和static同时使用,有时能够避免类的加载。待以后学习继续补充。。。