Lớp trừu tượng (Abtraction Class) là một khái niệm quan trọng trong lập trình hướng đối tượng. Trong bài viết này, chúng ta sẽ tìm hiểu về lớp trừu tượng và khám phá ví dụ minh họa cụ thể.
Lớp trừu tượng (Abtraction Class) là gì?
Lớp trừu tượng (Abtraction Class) là một lớp được khai báo với keyword abstract
. Đơn giản, lớp trừu tượng được sử dụng để khai báo thuộc tính và phương thức cho các lớp khác sử dụng.
Lớp trừu tượng không thể khởi tạo tham số mà chỉ khai báo. Nó thường được sử dụng như một lớp cha (base class) của các lớp có cùng bản chất, kiểu, loại, nhiệm vụ. Mỗi lớp dẫn xuất (derived class - lớp con) có thể thừa kế từ một lớp trừu tượng.
Lớp trừu tượng (Abtraction Class)
Ví dụ:
// Tạo một lớp trừu tượng abstract class Language { // Thân lớp trừu tượng }
Khi cần mô tả các loại hành vi chung và phân cấp lớp trong lập trình hướng đối tượng, chúng ta sử dụng lớp trừu tượng (Abtraction Class). Ngoài ra, lớp trừu tượng cũng được sử dụng để mô tả các lớp con và cung cấp chi tiết thực hiện của lớp trừu tượng.
Ví dụ minh họa cụ thể của lớp trừu tượng
Ví dụ 1: Ứng dụng bệnh viện
Giả sử bạn muốn tạo một ứng dụng bệnh viện và bạn cần thu thập thông tin về bệnh nhân. Tuy nhiên, không phải tất cả các thông tin đều cần thiết. Bạn chỉ cần chọn các thông tin hữu ích cho ứng dụng bệnh viện như tên, tuổi, địa chỉ, tình trạng bệnh,...
Quá trình này được gọi là trừu tượng hóa, vì chúng ta đã tìm nạp, xóa, chọn thông tin từ một nhóm lớn hơn. Thông tin này có thể được sử dụng cho nhiều ứng dụng khác mà không cần sửa đổi.
Lớp trừu tượng trong Java
Ví dụ 2: Chương trình vẽ hình
Khi viết một chương trình vẽ một hình bất kỳ với màu xanh, chúng ta sẽ tạo một lớp trừu tượng (Abtraction Class) có tên Shape
. Lớp này cung cấp một phương thức trừu tượng draw
để đảm bảo rằng tất cả các hình đều có cách sử dụng giống nhau. Ngoài ra, có phương thức không trừu tượng getColor
để cung cấp màu sử dụng chung cho tất cả các hình.
Tiếp theo, chúng ta sẽ tạo 2 lớp Rectangle
và Circle
kế thừa từ lớp Shape
để xử lý đường vẽ cho từng hình. Cuối cùng, chúng ta tạo một lớp ShapeApp
để vẽ hình theo yêu cầu.
public abstract class Shape { private String color = "green"; public Shape() { } public abstract void draw(); public String getColor() { return color; } } public class Rectangle extends Shape { @Override public void draw() { System.out.println("Vẽ hình chữ nhật màu " + super.getColor()); } } public class Circle extends Shape { @Override public void draw() { System.out.println("Vẽ hình tròn màu " + super.getColor()); } } public class ShapeApp { public static void main(String[] args) { Shape rect = new Rectangle(); rect.draw(); System.out.println("---"); Shape circle = new Circle(); circle.draw(); } }
Kết quả:
Vẽ hình chữ nhật màu xanh --- Vẽ hình tròn màu xanh
Như vậy, lớp trừu tượng (Abtraction Class) là một tính chất quan trọng trong lập trình hướng đối tượng. Nó được sử dụng để mô tả và phân cấp các đối tượng trong các bài toán trừu tượng. Hi vọng qua bài viết này, bạn đã hiểu và biết cách ứng dụng hiệu quả lớp trừu tượng vào công việc lập trình của mình.
Phạm Thị Thanh Ngọc