Trừu tượng hóa và giao diện trong java

2 minute read

II. Lập trình hướng đối tượng trong Java:

C. Trừu tượng hóa và giao diện:

  1. Trừu tượng hóa (Abstraction):

    • Trừu tượng hóa là một khái niệm quan trọng trong lập trình hướng đối tượng, cho phép ẩn đi các chi tiết triển khai của một lớp và chỉ tập trung vào các tính năng hoặc hành vi quan trọng của đối tượng.
    • Mục đích của trừu tượng hóa là cung cấp một giao diện đơn giản và trừu tượng để tương tác với đối tượng, giảm bớt sự phức tạp và tăng tính linh hoạt trong mã nguồn.
    • Trong Java, trừu tượng hóa có thể được đạt được bằng cách sử dụng lớp trừu tượng (abstract class) hoặc giao diện (interface).
  2. Giao diện (Interface):

    • Giao diện là một tập hợp các phương thức không có triển khai (chỉ có các khai báo phương thức mà không có thân hàm).
    • Một lớp có thể triển khai một hoặc nhiều giao diện, và cung cấp triển khai cụ thể cho tất cả các phương thức được khai báo trong giao diện đó.
    • Cú pháp khai báo giao diện:
      1
      2
      3
      
      interface InterfaceName {
          // Khai báo các phương thức (không có thân hàm)
      }
      
    • Ví dụ:
      1
      2
      3
      4
      
      interface Animal {
          void sound();
          void move();
      }
      
  3. Triển khai giao diện:

    • Để triển khai một giao diện trong một lớp, chúng ta sử dụng từ khóa implements.
    • Một lớp có thể triển khai nhiều giao diện bằng cách sử dụng dấu phẩy để ngăn cách giữa các tên giao diện.
    • Cú pháp:
      1
      2
      3
      
      class ClassName implements InterfaceName1, InterfaceName2 {
          // Triển khai các phương thức của giao diện
      }
      
    • Ví dụ:
      1
      2
      3
      4
      5
      6
      7
      8
      
      class Dog implements Animal {
          public void sound() {
              System.out.println("Dog barks");
          }
          public void move() {
              System.out.println("Dog runs");
          }
      }
      
  4. Ưu điểm của giao diện:

    • Tính trừu tượng cao: Giao diện chỉ định các hành động mà một đối tượng có thể thực hiện, mà không cung cấp bất kỳ chi tiết triển khai nào. Điều này giúp tách biệt giao diện từ triển khai cụ thể.
    • Tính linh hoạt: Một lớp có thể triển khai nhiều giao diện, cho phép nó thừa hưởng các tính năng từ nhiều nguồn khác nhau.
    • Hỗ trợ đa kế thừa ảo (multiple inheritance by interface): Trong Java, một lớp có thể triển khai nhiều giao diện, cho phép nó có tính chất của nhiều loại đối tượng.

Giao diện là một phần quan trọng của lập trình hướng đối tượng trong Java, giúp tạo ra các mã nguồn linh hoạt, dễ bảo trì và dễ mở rộng.