1、final的作用

①修饰类,该类不能被继承。String、System都是用final修饰的类

②修饰方法,该方法不能被重写。父类中方法只能被子类使用但不能重写时可以用final修饰 

③final和abstract不能共存

④final修饰变量,即常量,只能赋值一次

package com.wang.duixiang;

public class FinalDemo01 {
    public static void main(String[] args) {
        Employee employee=new Coder();
        employee.showFinal();
        employee.show();
        System.out.println("=============================================");
        //final修饰的变量:基本类型的变量,值不能改变
        final int NUM=20;
        System.out.println(NUM);
        //NUM=30;因为NUM是常量,所以值只能设置一次,不可更改
        System.out.println("=============================================");
        //final修饰的变量:一个引用类型的变量,地址值不能改变,属性值可以发生变化
        final Employee employee1=new Employee();
        //employee1=new Employee();报错,因为只要new就会开辟新空间,而final所修饰的变量不允许这样
        employee1.name="王迎婧";
        employee1.age=22;
        System.out.println("name属性值:"+employee1.name);
        System.out.println("age属性值:"+employee1.age);
        System.out.println("===================================");
        //属性值可更改
        employee1.name="万网";
        System.out.println("更改后name的属性值:"+employee1.name);
    }
}
class Coder extends Employee{
     public void show(){
         System.out.println("没有final关键字可以重写方法");
     }
     //public void showFinal(){}父类中的此方法有final修饰,所以不能重写
}

class Employee{
    String name;
    int age;
    public void show(){
        System.out.println("没有final关键字");
    }
    public final void showFinal(){
        System.out.println("有final关键字");
    }
}
 //class Employee extends People{}报错,因为People被final修饰,所以不能被继承

final class People{

}
01-07 19:13