①修饰类,该类不能被继承。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{
}