Java 中的 final 类

Rupam Yadav 2023年10月12日
Java 中的 final 类

本教程通过示例介绍了 final 类的主题。final 是 Java 中的一个关键字,可以在不同的上下文中与变量、方法和类一起使用。

它在某种程度上限制了每种情况下的访问。我们将讨论最后一节课。

在 Java 中使用 Final 类来限制类

带有关键字 final 的类称为 final 类。我们在一个类中使用 final 关键字来限制该类被其他类继承。

当我们想要保护任何扩展时,我们将类设为 final。它的优点之一是安全性,因为最终类是不可变的,无法更改。

在下面的示例中,我们有两个类。第一个类 ExampleClass1 具有 main() 方法,而在第二个类 ExampleClass2 中,我们使用 final 关键字使其成为最终类。

当我们在 ExampleClass1 中使用 extends 关键字扩展 ExampleClass2 时,我们会在输出中收到一个错误,指出我们无法继承最终类。

class ExampleClass1 extends ExampleClass2 {
  public static void main(String[] args) {}
}

final class ExampleClass2 {
  int abc = 30;
}

输出:

java: cannot inherit from final com.tutorial.ExampleClass2

我们不能扩展最终类,但是如果我们想访问该类的属性或方法怎么办?

请注意,使用 final 关键字时不能扩展类,但我们可以创建它的对象来访问它的函数和变量。

示例中有两个类;一个是最终类 ExampleClass2,而另一个类 ExampleClass1 需要执行 main() 方法。

我们创建一个 ExampleClass2 类的对象,然后打印 abc 的值,一个整数变量。

即使在 final 时,我们也可以访问该类及其变量,因为我们在这里不使用继承。

class ExampleClass1 {
  public static void main(String[] args) {
    ExampleClass2 exampleClass2 = new ExampleClass2();
    System.out.println(exampleClass2.abc);
  }
}

final class ExampleClass2 {
  int abc = 30;
}

输出:

30
作者: Rupam Yadav
Rupam Yadav avatar Rupam Yadav avatar

Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.

LinkedIn