Bài đăng nổi bật


Interface là gì?

Một interface giống như Java Class, nhưng nó chỉ có các hằng tĩnh và phương thức trừu tượng. Java sử dụng Interface để thực hiện nhiều kế thừa. Một lớp Java có thể thực hiện nhiều Interface Java. Tất cả các phương thức trong một interface đều hoàn toàn công khai và trừu tượng.
Cú pháp cho khai báo Interface
interface {
//methods
}
Để sử dụng một interface trong lớp của bạn, hãy thêm từ khóa "implements" sau tên lớp của bạn theo sau là tên .
Ví dụ cho việc triển khai giao diện
class Dog implements Pet
interface RidableAnimal extends Animal, Vehicle
Tại sao cần có Interface?
Để hiểu rõ hơn về khái niệm Interface  Java, hãy xem một ví dụ. Lớp "Media Player" có hai lớp con: đầu CD và đầu DVD. Mỗi người có phương pháp thực hiện riêng để chơi nhạc.
Cách sử dụng Giao diện trong Java
Một lớp "Combo drive" khác đang kế thừa cả CD và DVD (xem hình ảnh bên dưới). Nó nên kế thừa phương pháp chơi nào? Điều này có thể gây ra vấn đề thiết kế nghiêm trọng. Và do đó, Java không cho phép nhiều kế thừa.
Cách sử dụng Giao diện trong Java
Bây giờ hãy lấy một ví dụ khác về Dog.
Giả sử bạn có một yêu cầu trong đó lớp "chó" kế thừa lớp "động vật" và "Thú cưng" (xem hình dưới đây). Nhưng bạn không thể mở rộng hai lớp trong Java. Vậy bạn muốn làm gì? Giải pháp là Giao diện.
Cách sử dụng Giao diện trong Java
Quy tắc cho  nói,
  • Một giao diện là lớp trừu tượng 100% và chỉ có các phương thức trừu tượng.
  • Lớp có thể thực hiện bất kỳ số lượng giao diện.
Class Dog có thể mở rộng đến lớp "Animal" và thực hiện giao diện là "Pet".
Cách sử dụng Giao diện trong Java

Ví dụ về Interface Java:

Bước 1) Sao chép mã sau vào editor
interface Pet{
  public void test();
}
class Dog implements Pet{
   public void test(){
     System.out.println("Interface Method Implemented");
  }
   public static void main(String args[]){
     Pet p = new Dog();
     p.test();
  }
}
Bước 2) Lưu, biên dịch và chạy mã. Quan sát đầu ra.

Sự khác biệt giữa Class và Interface

Class
Interface
Trong lớp, bạn có thể khởi tạo biến và tạo một đối tượng.Trong một giao diện, bạn không thể khởi tạo biến và tạo một đối tượng.
Lớp có thể chứa các phương thức cụ thể (có triển khai)Giao diện không thể chứa các phương thức cụ thể (có triển khai)
Các chỉ định truy cập được sử dụng với các lớp là riêng tư, được bảo vệ và công khai.
Trong Giao diện chỉ có một công cụ xác định được sử dụng - Công khai.

Khi nào nên sử dụng Interface và Abstract class?

  • Sử dụng một lớp trừu tượng khi một mẫu cần được xác định cho một nhóm các lớp con
  • Sử dụng một giao diện khi một vai trò cần được xác định cho các lớp khác, bất kể cây thừa kế của các lớp này

Phải biết sự thật về Interface

  • Một lớp Java có thể thực hiện nhiều Interface Java. Điều cần thiết là lớp phải thực hiện tất cả các phương thức được khai báo trong các interface.
  • Class nên ghi đè tất cả các phương thức trừu tượng được khai báo trong giao diện
  • Interface cho phép gửi tin nhắn đến một đối tượng mà không liên quan đến lớp nào.
  • Class cần cung cấp chức năng cho các phương thức được khai báo trong interface.
  • Tất cả các phương thức trong một giao diện đều hoàn toàn công khai và trừu tượng
  • Một interface không thể được khởi tạo
  • Một tham chiếu interface có thể trỏ đến các đối tượng của các lớp triển khai (implemented class) của nó
  • Một interface có thể mở rộng từ một hoặc nhiều interface. Class chỉ có thể mở rộng một lớp nhưng thực hiện bất kỳ số lượng giao diện nào
  • Một interface không thể thực hiện interface khác. Nó phải mở rộng interface khác nếu cần.
  • Một interfacae được khai báo bên trong một interface khác được gọi là interface lồng nhau
  • Tại thời điểm khai báo, ibiến interface phải được khởi tạo. Nếu không, trình biên dịch sẽ đưa ra một lỗi.
  • Lớp không thể thực hiện hai interface trong java có các phương thức có cùng tên nhưng kiểu trả về khác nhau.

Tóm tắt :

  • Lớp thực hiện interface cần cung cấp chức năng cho các phương thức được khai báo trong interface
  • Tất cả các phương thức trong một interface đều hoàn toàn công khai và trừu tượng
  • Một interface không thể được khởi tạo
  • Một tham chiếu interface có thể trỏ đến các đối tượng của các lớp triển khai của nó
  • Một interface có thể mở rộng từ một hoặc nhiều interface. Một lớp chỉ có thể mở rộng một lớp nhưng thực hiện bất kỳ số lượng interface nào

Post a Comment

أحدث أقدم