Khai báo interface trong Java, hằng số với interface

Khai báo interface trong Java, hằng số với interface.

(Xem thêm: Khai báo class trong Java, Nguyên tắc khai báo class.)

(Xem thêm: Sự khác nhau giữa Abstract class với Interface trong Java)

Khai báo interface

Một interface là một source file được khai báo với từ khóa interface chứ không phải class

Khi bạn tạo một interface tức là bạn đang định nghĩa những gì mà class có thể làm mà không nói gì đến nó làm như thế nào.

Ví dụ bạn định nghĩa interface PeopleAction với các hành động như work(), study()… Class Student và Employee thực hiện cài đặt (implements) lại interface PeopleAction tức là 2 class Student và Employee có thể và bắt buộc cài đặt lại word() và study() còn cài đặt như nào thì mỗi class lại có cách cài đặt khác nhau.

  • Một interface có thể extends nhiều interface khác (không thể implements interface)
  • Một class có thể implements nhiều interface.
  • Không thể sử dụng từ khóa final khi khai báo interface (vì interface sinh ra để những thằng khác thừa kế)
  • Tất cả các method trong interface đều được ngầm hiểu là public abstract (Từ Java 8 cho phép thêm method không phải là abstract vào interface bằng từ khóa default; Từ Java 9 cho phép thêm method private và private static vào Interface)
  • Các method trong interface không thể khai báo với từ khóa static
  • Vì các method trong interface là abstract nên nó cũng không thể khai báo với từ khóa final, strictfp, native
  • Tất cả các biến trong interface đều được ngầm nhiều là public static final.

Khai báo interface trong Java, hằng số với interface

Khai báo hằng số trong interface

Bạn được phép khai báo các hằng số bên trong một interface. Bằng cách này bạn đảm bảo được rằng các class cùng thừa kế interface sẽ được truy cập vào cùng 1 hằng số.

Ví dụ:

public interface Common {
    int MAX_CONNECTION = 100;  // tương đương với public static final int MAX_CONNECTION = 100;
}

Khi cần sử dụng hằng số MAX_CONNECTION ta chỉ cần gọi Common.MAX_CONNECTION

Việc khai báo hằng số trong inteface lợi thế hơn việc khai báo hằng số trong class vì tất cả các biến trong interface đều được ngầm nhiều là public static final, ta có thể chắc chắn nó là hằng số và không bị thay đổi giá trị.

 

(Xem thêm: default interface trong java 8)

Khai báo interface trong Java, hằng số với interface stackjava.com

Xem thêm: https://stackjava.com/java-core

References:

stackjava.com