26-final关键字

发布时间 2024-01-11 09:26:34作者: 马铃薯1

 

public class FinalDemo {
    public static void main(String[] args){

        Zi zi = new Zi();
        zi.method();
        zi.method2();
    }
}

class Fu{
    public void method(){
        System.out.println("父类中非常重要的方法,不希望子类进行修改");
    }

    public final void method2(){
        System.out.println("父类中非常重要的方法,不希望子类进行修改");
    }
}

class Zi extends Fu{
    @Override
    public void method(){
        System.out.println("子类重写父类的方法");
    }

//    final修饰的方法不能被重写
//    @Override
//    public void method2(){
//        System.out.println("子类重写父类的方法");
//    }
}

 

final 修饰基本数据类型:数据值不可改变

final 修饰引用数据类型:地址值不可改变,但是内容可以改变

public class FinalDemo {
    public static void main(String[] args){

        // final修饰基本数据类型,数据值不可改变
        final int a = 1;
        // a = 2; // error: cannot assign a value to final variable a
        
        // final修饰引用类型,地址值不可改变,但是内容可以改变
        final int[] arr = {1,2,3};
        arr[0] = 4;
        System.out.println(arr[0]);  // 4
        // arr = new int[]{1,2,3,4}; // error: cannot assign a value to final variable arr
    }
}

 

final修饰变量的命名规范:

1)如果变量名是一个单词,所有字母大写:如 MAX

2)如果变量名是多个单词,所有字母大写,中间使用下划线分割:如 MAX_VALUE