final关键字
在继承中很多时候,有写内容,是不能被子类重写的,而我们又知道。只要方法声明子类就可以重写父类方法,这样就让父类的方法不安全了。
针对这个情况,我们如果能做一个标记,告诉别人注意这个方法时不可以被重写了,那么这个标记就是final。
概述
final关键字:最终的意思。它可以修饰类,修饰成员变量,修饰成员变量。
作用
final 放在类前面 如果某个类在定义时,前面有修饰词final,则该类不能被继承
final 放在属性前面 属性声明时,如果前面有修饰词final关键字,则该属性值不能被更改,即此时该属性为常量
final放在方法前面 如果某个方法在定义时,前面有修饰词final,该方法可以被调用,不能重写
static和final关键字区别
很多时候会容易把static和final关键字混淆,static作用于成员变量用来表示只保存一份副本,而final的作用是用来保证变量不可变。
面试题
fianl,finally,finalize的区别
前面2个好说,后面一个是String的来讲回收器。一般不常用
finally里面的代码真的永远会执行,但是有一个特殊情况:在代码执行到finally之前,jvm就退出了。
如果 return在finally之前,finally还会执行吗
会执行,在return只间执行。如下代码 public class Replace { public static void main(String[] args) { method(); }
private static int method() {
// TODO Auto-generated method stub
int a=10;
try{
System.out.println(a/0);
System.out.println("a="+a);
}catch(ArithmeticException e){
a=20;
return a;
}finally{
System.out.println("a="+a);
a=30;
}
return a;
}
}
上面的代码显示的是,代码先运行到return的时候看到还有finally,所以就执行了finally语句执行完毕后再返回到return,返回之前的a的值,而不是finally里面的a的值,结果是 a=20; |
|