·
25/3/2025
Abstract và Interface

1.Abstract là gì

Tính trừu tượng (Abstraction) là một trong bốn tính chất cơ bản của Lập trình hướng đối tượng. Hiểu đơn giản, Tính trừu tượng dùng để chỉ quá trình ẩn việc triển khai thực tế của một ứng dụng khỏi người dùng. Thay vào đó, lập trình viên chỉ nhấn mạnh vào cách sử dụng ứng dụng. Thông qua Tính trừu tượng, lập trình viên có thể ẩn tất cả dữ liệu hoặc quy trình không liên quan của ứng dụng. Đối với người dùng, đó chỉ là những chi tiết không cần thiết. Từ đó, ta có thể để giảm độ phức tạp và tăng hiệu quả sử dụng của phần mềm.


Lợi ích khi sử dụng:

  • Giao diện người dùng đơn giản, cấp cao.
  • Các đoạn mã phức tạp bị ẩn đi.
  • Nâng cao vấn đề bảo mật, bảo vệ dữ liệu không bị lộ.
  • Việc bảo trì phần mềm dễ dàng hơn.
  • Việc cập nhật hay thay đổi mã sẽ rất ít khi ảnh hưởng đến Tính trừu tượng.

2.Lớp Abstract

Trong Java, một lớp trừu tượng là lớp được khai báo với từ khóa abstract. Nó không thể được khởi tạo và thường được sử dụng để cung cấp một lớp cơ sở cho các lớp con. Lớp trừu tượng có thể chứa các phương thức trừu tượng (phương thức không có thân) và phương thức không trừu tượng (phương thức có thân).

Ví dụ 1: Khai báo 1 lớp abstract (trừu tượng) là Shape và 2 lớp con là Circle, Rectangle cùng kế thừa lớp Shape:

// Lớp trừu tượng Shape

abstract class Shape{

   // Phương thức trừu tượng draw

   abstract void draw();

}


// Lớp Rectangle kế từa lớp Shape

class Rectangle extends Shape{

   void draw(){

       System.out.println("Ve hinh chu nhat");

   }

}


// Lớp Circle kế từa lớp Shape

class Circle extends Shape{

   void draw(){

       System.out.println("Ve hinh tron");

   }

}


// Khai báo lớp có chứa phương thức Main

class TestAbstraction{

   public static void main(String args[]){

       Shape s=new Circle();

       s.draw();

   }

}


Sau khi chạy chương trình trên thì phương thức draw của lớp Circle sẽ được gọi đến và ta thu được kết quả như sau:


Quy tắc: 

  • Phương thức abstract không có thân phương thức. Chúng ta sử dụng từ khóa abstract để khai báo phương thức abstract và kết thúc bởi dấu chấm phẩy “;”
  • Nếu bạn đang kế thừa bất cứ lớp trừu tượng nào mà có phương thức trừu tượng, thì bạn phải hoặc cung cấp trình triển khai của các phương thức của lớp trừu tượng này, nếu không sẽ gây ra lỗi. Nhưng nếu lớp con cũng là lớp abstract thì không bắt buộc định nghĩa lại các phương thức abstract của lớp cha
  • Nếu một lớp bao gồm abstract method nhưng không được khai báo là lớp abstract thì sẽ gây ra lỗi.
  • Một lớp được khai báo abstract thì không nhất thiết phải có phương thức abstract trong nó.
  • Chúng ta không thể tạo ra các đối tượng của lớp abstract.

Bạn đã hiểu rõ về Abstract class và cách sử dụng trong Java. Vậy còn Interface thì sao? Interface có gì khác biệt và khi nào nên dùng thay vì Abstract class? Hãy tiếp tục khám phá phần 2 để hiểu sâu hơn về Interface và cách áp dụng trong thực tế!




19 người đọc