Java Từ khóa final

Trong hướng dẫn này, chúng ta sẽ tìm hiểu về các biến, phương thức và lớp cuối cùng của Java với các ví dụ.

Trong Java, finaltừ khóa được sử dụng để biểu thị các hằng số. Nó có thể được sử dụng với các biến, phương thức và lớp.

Khi bất kỳ thực thể nào (biến, phương thức hoặc lớp) được khai báo final, nó chỉ có thể được gán một lần. Đó là,

  • the final variable cannot be reinitialized with another value
  • the final method cannot be overridden
  • the final class cannot be extended

1. Biến cuối cùng của Java

Trong Java, chúng ta không thể thay đổi giá trị của một biến cuối cùng. Ví dụ,

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

    // create a final variable
    final int AGE = 32;

    // try to change the final variable
    AGE = 45;
    System.out.println("Age: " + AGE);
  }
}

Trong chương trình trên, chúng ta đã tạo một biến cuối cùng có tên là age . Và chúng tôi đã cố gắng thay đổi giá trị của biến cuối cùng.

Khi chúng tôi chạy chương trình, chúng tôi sẽ gặp lỗi biên dịch với thông báo sau.

cannot assign a value to final variable AGE
    AGE = 45;
    ^

Lưu ý : Nên sử dụng chữ hoa để khai báo các biến cuối cùng trong Java.

2. Phương pháp cuối cùng của Java

Trước khi bạn tìm hiểu về các phương thức cuối cùng và các lớp cuối cùng, hãy đảm bảo rằng bạn biết về Kế thừa Java .

Trong Java, finallớp con không thể ghi đè phương thức này. Ví dụ,

class FinalDemo {
    // create a final method
    public final void display() {
      System.out.println("This is a final method.");
    }
}

class Main extends FinalDemo {
  // try to override final method
  public final void display() {
    System.out.println("The final method is overridden.");
  }

  public static void main(String[] args) {
    Main obj = new Main();
    obj.display();
  }
}

Trong ví dụ trên, chúng ta đã tạo một phương thức cuối cùng có tên display()bên trong FinalDemolớp. Ở đây, lớp Main kế thừa lớp FinalDemo .

Chúng tôi đã cố gắng ghi đè phương thức cuối cùng trong lớp Chính . Khi chúng tôi chạy chương trình, chúng tôi sẽ gặp lỗi biên dịch với thông báo sau.

 display() in Main cannot override display() in FinalDemo
  public final void display() {
                    ^
  overridden method is final

3. Lớp cuối cùng của Java

Trong Java, lớp cuối cùng không thể được kế thừa bởi một lớp khác. Ví dụ,

// create a final class
final class FinalClass {
  public void display() {
    System.out.println("This is a final method.");
  }
}

// try to extend the final class
class Main extends FinalClass {
  public  void display() {
    System.out.println("The final method is overridden.");
  }

  public static void main(String[] args) {
    Main obj = new Main();
    obj.display();
  }
}

Trong ví dụ trên, chúng ta đã tạo một lớp cuối cùng có tên là FinalClass . Ở đây, chúng tôi đã cố gắng kế thừa lớp cuối cùng bởi lớp Chính .

Khi chúng tôi chạy chương trình, chúng tôi sẽ gặp lỗi biên dịch với thông báo sau.

cannot inherit from final FinalClass
class Main extends FinalClass {
                   ^








Gõ tìm kiếm nhanh...