final 关键字简述
final:最终
1.final 修饰类
final 修饰的类不能被继承
/*** final修饰的类 不能被继承* @author **/
public final class A {
}
//不能被继承,此处报错
//class B extends A{
//
//}
2.final修饰方法
final 修饰的方法不能被重写
/*** final 修饰的方法 不能被重写* @author **/
public class C {public final void m1() {}public void m2() {}public void m3() {}}
class D extends C{//此处报错,不能被重写
// private void m1() {
//
// }@Overridepublic void m2() {super.m2();}@Overridepublic void m3() {super.m3();}
}
3.final 修饰属性
1.使用final修饰的属性,称为
常量
,常量可以在定义的时候赋值(基本就用这个赋值),也可以在构造方法中赋值(只能赋值一次 ,且不能改变)2.定义常量时,常量名称全部大写,多个单词用下划线分割
注意:一般定义常量时也会使用static修饰
1.static final 修饰的称为静态常量:内存中只存在一份,值不能被改变,在定义时和构造方法中赋值
/*** * @author **/
public class E {public final static double PI;private String name;static {PI = 3.14;}//不能重复定义
// static {
// PI = 3.14;
// }public final double PI_1;public E(){PI_1 = 3.14;}public E(String name) {PI_1 = 3.14;}//每创建一次 就会产生一次PI_1 但是用静态修饰的final PI 只会在加载类时加载一次E e1 = new E();E e2 = new E();// 在定义时赋值,此处构造方法内出错
// public final double PI_2;
// public E(){
// PI_2 = 3.14;
// }
}