final、finally和finalize的区别

来源:互联网 发布:小猪三网通源码 编辑:程序博客网 时间:2024/05/21 06:53

final关键字

final 修饰类 不可以被继承

final 修饰方法 不可以被重写

final修饰变量 这个变量不可以被重新赋值 包括静态和非静态

//        在定义初始化
         final int A=10;
         final int B;
//         在初始化块中初始化
         {
             B=20;
         }
//         不能对终态局部变量 A 赋值
//         A=11;

我们运行上面的代码之后出了可以发现final变量(常量)和静态final变量(静态常量)未被初始化时,编译会报错。
用final修饰的变量(常量)比非final的变量(普通变量)拥有更高的效率,因此我们在实际编程中应该尽可能多的用常量来代替普通变量

public class ParentClass {
      public final void TestFinal() {  
            System.out.println("父类--这是一个final方法");  
        }  
}
    class SubClass extends ParentClass {  
    /**
     * 子类无法重写(override)父类的final方法,否则编译时会报错
     */  
//    报错信息:不能覆盖 ParentClass 中的终态方法
//    public void TestFinal(){
//        System.out.println(""子类--重写final方法")
//    }
    public static void main(String[] args) {
        SubClass sc=new SubClass();
        sc.TestFinal();
//        输出结果:父类--这是一个final方法
    }



0 0
原创粉丝点击