19. Lớp abstract trong lập trình java hướng đối tượng

Trong lập trình java hướng đối tượng, một lớp abstract (lớp trừu tượng) là một lớp mà không thể tạo ra đối tượng trực tiếp từ nó. Lớp abstract được sử dụng để định nghĩa các khái niệm chung và cung cấp một cơ sở cho các lớp con kế thừa từ nó.

Để khai báo một lớp abstract, ta sử dụng từ khóa abstract trước từ khóa class:

java
abstract class MyClass {
    // ...
}

Một số đặc điểm và quy tắc về lớp abstract:

  1. Lớp abstract không thể được khởi tạo trực tiếp, tức là không thể sử dụng toán tử new để tạo đối tượng từ lớp abstract.
  2. Lớp abstract có thể chứa các trường, các phương thức trừu tượng, và các phương thức thông thường.
  3. Lớp abstract có thể có constructor, và constructor này sẽ được gọi khi khởi tạo đối tượng của lớp con. Tuy nhiên, không thể tạo đối tượng trực tiếp từ lớp abstract.
  4. Lớp con kế thừa từ lớp abstract phải triển khai (implement) tất cả các phương thức trừu tượng (nếu có) của lớp abstract. Nếu không triển khai các phương thức trừu tượng, lớp con cũng phải được khai báo là abstract.

Ví dụ:

java
abstract class Animal {
    public abstract void makeSound();
}

class Dog extends Animal {
    @Override
    public void makeSound() {
        System.out.println("Dog is barking");
    }
}

class Cat extends Animal {
    @Override
    public void makeSound() {
        System.out.println("Cat is meowing");
    }
}

public class Main {
    public static void main(String[] args) {
        Animal dog = new Dog();
        dog.makeSound(); // Kết quả: "Dog is barking"

        Animal cat = new Cat();
        cat.makeSound(); // Kết quả: "Cat is meowing"
    }
}

Trong ví dụ này, lớp Animal là một lớp abstract với một phương thức trừu tượng makeSound(). Lớp DogCat kế thừa từ lớp Animal và triển khai phương thức makeSound(). Chúng ta tạo đối tượng dogcat từ lớp con và gọi phương thức makeSound(). Mặc dù chúng ta không thể tạo đối tượng trực tiếp từ lớp abstract Animal, nhưng có thể sử dụng đối tượng của lớp con để thực hiện các hành vi riêng biệt của chúng.

Lớp abstract là một cách mạnh mẽ để mô hình hóa các khái niệm chung và xác định các phương thức trừu tượng để yêu cầu các lớp con triển khai chúng.

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top