Java 中的final关键字

95 阅读1分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

一、final关键字特性

final具有“这是无法改变的”或者“最终”的含义

  1. final修饰的类不能被继承
  2. final修饰的方法不能被子类重写
  3. final修饰的变量(成员变量和局部变量)是常量,只能赋值一次

二、final关键字修饰类

Java中的类被final关键字修饰后,该类将不可以被继承,也就是不能够派生子类

案例:

//使用 final关键字修饰 Animal类
final class Animal05 {
    //方法体为空
}
//Dog类继承 Animal类
class Dog05 extends Animal05 {
    //方法体为空
}
//定义测试类
class ExampleA05 {
    public static void main(String[] args) {
        Dog05 dog05=new Dog05();  //创建一个 Dog类的实例对象
    }
}

//Error:(7, 21) java: 无法从最终com.company.ObjectOrientedLast.Animal05进行继承

三、final关键字的修饰方法

当一个类的方法被final关键字修饰后,这个类的子类将不能重写该方法。

案例:

//定义 Animal类
class Animal06 {
    //使用 final关键字修饰 shout()方法
    public final void shout() {
        //程序代码
    }
}
//定义 Dog类继承 Animal类
class Dog06 extends Animal06 {
    //重写 Animal类的 shout()方法
    public void shout() {
        //程序代码
    }
}
//定义测试类
class ExampleA06 {
    public static void main(String[] args) {
        Dog06 dog06=new Dog06();  //创建一个 Dog类的实例对象
    }
}

四、final关键字修饰变量

案例:

//定义 Student类
class Student {
    final String name;

    public void introduce() {
        System.out.println("我是一个学生,我叫"+name);
    }
}
//定义测试类
class ExampleS01 {
    public static void main(String[] args) {
        Student stu=new Student();
        stu.introduce();
    }
}