Java Abstraction

Java Abstraction: Định Nghĩa, Cú Pháp và Ví Dụ

Trong lập trình Java, Abstraction (trừu tượng hóa) là một trong những khái niệm quan trọng của lập trình hướng đối tượng. Nó cho phép chúng ta ẩn đi những thông tin chi tiết và chỉ hiển thị những đặc điểm cần thiết của một đối tượng, giúp cho việc quản lý và mở rộng hệ thống dễ dàng hơn.

Định Nghĩa

Abstraction là quá trình tạo ra một lớp (class) cha (superclass) với những đặc điểm chung, trong khi các lớp con (subclass) sẽ mở rộng các đặc điểm đó với những chi tiết cụ thể hơn. Qua đó, nó giúp giảm thiểu sự phức tạp và tăng cường khả năng tái sử dụng mã.

Cú Pháp

Trong Java, có hai cách để thực hiện Abstraction:

1. Sử dụng Abstract Class:
- Khai báo lớp là abstract với từ khóa `abstract`.
- Có thể có các phương thức abstract chưa được định nghĩa, và các phương thức thông thường (đã định nghĩa).

2. Sử dụng Interface:
- Tạo một interface với từ khóa `interface`.
- Tất cả các phương thức trong interface đều là phương thức abstract (tính đến Java 8, interface cũng có thể có phương thức mặc định).

Ví Dụ về Abstract Class

abstract class Hinh {
    abstract void ve();
}

class HinhTron extends Hinh {
    void ve() {
        System.out.println("Vẽ hình tròn");
    }
}

class HinhVuong extends Hinh {
    void ve() {
        System.out.println("Vẽ hình vuông");
    }
}

public class Main {
    public static void main(String[] args) {
        Hinh h1 = new HinhTron();
        h1.ve(); // Xuất ra: Vẽ hình tròn

        Hinh h2 = new HinhVuong();
        h2.ve(); // Xuất ra: Vẽ hình vuông
    }
}

Ví Dụ về Interface

interface DongVat {
    void keu();
}

class Cho implements DongVat {
    public void keu() {
        System.out.println("Chó sủa");
    }
}

class Meo implements DongVat {
    public void keu() {
        System.out.println("Mèo kêu");
    }
}

public class Main {
    public static void main(String[] args) {
        DongVat d1 = new Cho();
        d1.keu(); // Xuất ra: Chó sủa

        DongVat d2 = new Meo();
        d2.keu(); // Xuất ra: Mèo kêu
    }
}

Kết Luận

Java Abstraction là một khái niệm quan trọng giúp làm cho mã nguồn trở nên sạch sẽ, dễ hiểu và dễ bảo trì. Qua việc sử dụng abstract classes và interfaces, chúng ta có thể ẩn đi những chi tiết không cần thiết và chỉ chú trọng vào những đặc điểm quan trọng của đối tượng. Hy vọng bài viết này giúp bạn hiểu rõ hơn về Abstraction trong Java!